vf_dsize, vf_scale: fix behavior on multiple config() calls
[mplayer.git] / configure
blobe46650fdb7cd7705de21a836a1e94ebe2b71adb5
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, look at the existing checks
23 # and try to use helper functions where you can.
25 # Furthermore you need to add the variable _feature to the list of default
26 # settings and set it to one of yes/no/auto. Also add appropriate
27 # --enable-feature/--disable-feature command line options.
28 # The results of the check should be written to config.h and config.mak
29 # at the end of this script. The variable names used for this should be
30 # uniform, i.e. if the option is named 'feature':
32 # _feature : should have a value of yes/no/auto
33 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
34 # _ld_feature : '-L/path/dir -lfeature' GCC options
36 #############################################################################
38 # Prevent locale nonsense from breaking basic text processing utils
39 export LC_ALL=C
41 # Store the configure line that was used
42 configuration="$*"
44 # Prefer these macros to full length text !
45 # These macros only return an error code - NO display is done
46 compile_check() {
47 source="$1"
48 shift
49 echo >> "$TMPLOG"
50 cat "$source" >> "$TMPLOG"
51 echo >> "$TMPLOG"
52 echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG"
53 rm -f "$TMPEXE"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
55 TMPRES="$?"
56 echo >> "$TMPLOG"
57 echo >> "$TMPLOG"
58 return "$TMPRES"
61 cc_check() {
62 compile_check $TMPC $@
65 cxx_check() {
66 compile_check $TMPCPP $@ -lstdc++
69 cflag_check() {
70 cat > $TMPC << EOF
71 int main(void) { return 0; }
72 EOF
73 compile_check $TMPC $@
76 header_check() {
77 cat > $TMPC << EOF
78 #include <$1>
79 int main(void) { return 0; }
80 EOF
81 shift
82 compile_check $TMPC $@
85 return_check() {
86 cat > $TMPC << EOF
87 #include <$1>
88 int main(void) { return $2; }
89 EOF
90 shift 2
91 compile_check $TMPC $@
94 statement_check() {
95 cat > $TMPC << EOF
96 #include <$1>
97 int main(void) { $2; return 0; }
98 EOF
99 shift
100 shift
101 compile_check $TMPC $@
104 define_statement_check() {
105 cat > $TMPC << EOF
106 #define $1
107 #include <$2>
108 int main(void) { $3; return 0; }
110 shift 3
111 compile_check $TMPC $@
114 return_statement_check() {
115 cat > $TMPC << EOF
116 #include <$1>
117 int main(void) { $2; return $3; }
119 shift 3
120 compile_check $TMPC $@
123 inline_asm_check() {
124 cat > $TMPC << EOF
125 int main(void) { __asm__ volatile ($1); return 0; }
127 shift
128 compile_check $TMPC $@
131 # The following checks are special and should only be used with broken and
132 # non-selfsufficient headers that do not include all of their dependencies.
134 header_check_broken() {
135 cat > $TMPC << EOF
136 #include <$1>
137 #include <$2>
138 int main(void) { return 0; }
140 shift
141 shift
142 compile_check $TMPC $@
145 statement_check_broken() {
146 cat > $TMPC << EOF
147 #include <$1>
148 #include <$2>
149 int main(void) { $3; return 0; }
151 shift 3
152 compile_check $TMPC $@
155 yasm_check() {
156 echo >> "$TMPLOG"
157 cat "$TMPS" >> "$TMPLOG"
158 echo >> "$TMPLOG"
159 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
160 rm -f "$TMPEXE"
161 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
162 TMPRES="$?"
163 echo >> "$TMPLOG"
164 echo >> "$TMPLOG"
165 return "$TMPRES"
168 tmp_run() {
169 "$TMPEXE" >> "$TMPLOG" 2>&1
172 # Display error message, flushes tempfile, exit
173 die () {
174 echo
175 echo "Error: $@" >&2
176 echo >&2
177 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
178 echo "Check \"$TMPLOG\" if you do not understand why it failed."
179 exit 1
182 # OS test booleans functions
183 issystem() {
184 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
186 aix() { issystem "AIX"; }
187 amigaos() { issystem "AmigaOS"; }
188 beos() { issystem "BEOS"; }
189 bsdos() { issystem "BSD/OS"; }
190 cygwin() { issystem "CYGWIN"; }
191 darwin() { issystem "Darwin"; }
192 dragonfly() { issystem "DragonFly"; }
193 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
194 gnu() { issystem "GNU"; }
195 hpux() { issystem "HP-UX"; }
196 irix() { issystem "IRIX"; }
197 linux() { issystem "Linux"; }
198 mingw32() { issystem "MINGW32"; }
199 morphos() { issystem "MorphOS"; }
200 netbsd() { issystem "NetBSD"; }
201 openbsd() { issystem "OpenBSD"; }
202 os2() { issystem "OS/2"; }
203 qnx() { issystem "QNX"; }
204 sunos() { issystem "SunOS"; }
205 win32() { cygwin || mingw32; }
207 # arch test boolean functions
208 # x86/x86pc is used by QNX
209 x86_32() {
210 case "$host_arch" in
211 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
212 *) return 1 ;;
213 esac
216 x86_64() {
217 case "$host_arch" in
218 x86_64|amd64) return 0 ;;
219 *) return 1 ;;
220 esac
223 x86() {
224 x86_32 || x86_64
227 ppc() {
228 case "$host_arch" in
229 ppc|ppc64|powerpc|powerpc64) return 0;;
230 *) return 1;;
231 esac
234 alpha() {
235 case "$host_arch" in
236 alpha*) return 0;;
237 *) return 1;;
238 esac
241 arm() {
242 case "$host_arch" in
243 arm*) return 0;;
244 *) return 1;;
245 esac
248 # Use this before starting a check
249 echocheck() {
250 echo "============ Checking for $@ ============" >> "$TMPLOG"
251 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
254 # Use this to echo the results of a check
255 echores() {
256 if test "$res_comment" ; then
257 res_comment="($res_comment)"
259 echo "Result is: $@ $res_comment" >> "$TMPLOG"
260 echo "##########################################" >> "$TMPLOG"
261 echo "" >> "$TMPLOG"
262 echo "$@ $res_comment"
263 res_comment=""
265 #############################################################################
267 # Check how echo works in this /bin/sh
268 case $(echo -n) in
269 -n) _echo_n= _echo_c='\c' ;; # SysV echo
270 *) _echo_n='-n ' _echo_c= ;; # BSD echo
271 esac
273 msg_lang_all=''
274 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
275 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
276 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
278 show_help(){
279 cat << EOF
280 Usage: $0 [OPTIONS]...
282 Configuration:
283 -h, --help display this help and exit
285 Installation directories:
286 --prefix=DIR prefix directory for installation [/usr/local]
287 --bindir=DIR directory for installing binaries [PREFIX/bin]
288 --datadir=DIR directory for installing machine independent
289 data files (skins, etc) [PREFIX/share/mplayer]
290 --mandir=DIR directory for installing man pages [PREFIX/share/man]
291 --confdir=DIR directory for installing configuration files
292 [PREFIX/etc/mplayer]
293 --localedir=DIR directory for locale tree [PREFIX/share/locale]
294 --libdir=DIR directory for object code libraries [PREFIX/lib]
295 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
297 Optional features:
298 --disable-mplayer disable MPlayer compilation [enable]
299 --enable-termcap use termcap database for key codes [autodetect]
300 --enable-termios use termios database for key codes [autodetect]
301 --disable-iconv disable iconv for encoding conversion [autodetect]
302 --disable-langinfo do not use langinfo [autodetect]
303 --enable-lirc enable LIRC (remote control) support [autodetect]
304 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
305 --enable-joystick enable joystick support [disable]
306 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
307 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
308 --disable-vm disable X video mode extensions [autodetect]
309 --disable-xf86keysym disable support for multimedia keys [autodetect]
310 --enable-radio enable radio interface [disable]
311 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
312 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
313 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
314 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
315 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
316 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
317 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
318 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
319 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
320 --disable-networking disable networking [enable]
321 --enable-winsock2_h enable winsock2_h [autodetect]
322 --enable-smb enable Samba (SMB) input [autodetect]
323 --enable-live enable LIVE555 Streaming Media [autodetect]
324 --enable-nemesi enable Nemesi Streaming Media [autodetect]
325 --disable-vcd disable VCD support [autodetect]
326 --disable-bluray disable Blu-ray support [autodetect]
327 --disable-dvdnav disable libdvdnav [autodetect]
328 --disable-dvdread disable libdvdread [autodetect]
329 --disable-dvdread-internal disable internal libdvdread [autodetect]
330 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
331 --disable-cdparanoia disable cdparanoia [autodetect]
332 --disable-cddb disable cddb [autodetect]
333 --disable-bitmap-font disable bitmap font support [enable]
334 --disable-freetype disable FreeType 2 font rendering [autodetect]
335 --disable-fontconfig disable fontconfig font lookup [autodetect]
336 --disable-unrarexec disable using of UnRAR executable [enabled]
337 --disable-sortsub disable subtitle sorting [enabled]
338 --enable-fribidi enable the FriBiDi libs [autodetect]
339 --disable-enca disable ENCA charset oracle library [autodetect]
340 --enable-macosx-finder enable Mac OS X Finder invocation parameter
341 parsing [disabled]
342 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
343 --disable-inet6 disable IPv6 support [autodetect]
344 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
345 --disable-ftp disable FTP support [enabled]
346 --disable-vstream disable TiVo vstream client support [autodetect]
347 --disable-pthreads disable Posix threads support [autodetect]
348 --disable-w32threads disable Win32 threads support [autodetect]
349 --disable-libass disable subtitle rendering with libass [autodetect]
350 --enable-rpath enable runtime linker path for extra libs [disabled]
352 Codecs:
353 --enable-gif enable GIF support [autodetect]
354 --enable-png enable PNG input/output support [autodetect]
355 --enable-mng enable MNG input support [autodetect]
356 --enable-jpeg enable JPEG input/output support [autodetect]
357 --enable-libcdio enable libcdio support [autodetect]
358 --disable-win32dll disable Win32 DLL support [autodetect]
359 --disable-qtx disable QuickTime codecs support [enabled]
360 --disable-xanim disable XAnim codecs support [enabled]
361 --disable-real disable RealPlayer codecs support [enabled]
362 --disable-xvid disable Xvid [autodetect]
363 --disable-libnut disable libnut [autodetect]
364 --enable-libav skip Libav autodetection [autodetect]
365 --disable-libvorbis disable libvorbis support [autodetect]
366 --disable-tremor disable Tremor [autodetect if no libvorbis]
367 --disable-speex disable Speex support [autodetect]
368 --enable-theora enable OggTheora libraries [autodetect]
369 --enable-faad enable FAAD2 (AAC) [autodetect]
370 --disable-ladspa disable LADSPA plugin support [autodetect]
371 --disable-libbs2b disable libbs2b audio filter support [autodetect]
372 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
373 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
374 --disable-mad disable libmad (MPEG audio) support [autodetect]
375 --enable-xmms enable XMMS input plugin support [disabled]
376 --enable-libdca enable libdca support [autodetect]
377 --disable-liba52 disable liba52 [autodetect]
378 --enable-musepack enable libmpcdec support (deprecated, libavcodec
379 Musepack decoder is preferred) [disabled]
381 Video output:
382 --enable-gl enable OpenGL video output [autodetect]
383 --enable-dga2 enable DGA 2 support [autodetect]
384 --enable-dga1 enable DGA 1 support [autodetect]
385 --enable-vesa enable VESA video output [autodetect]
386 --enable-svga enable SVGAlib video output [autodetect]
387 --enable-sdl enable SDL video output [autodetect]
388 --enable-kva enable KVA video output [autodetect]
389 --enable-aa enable AAlib video output [autodetect]
390 --enable-caca enable CACA video output [autodetect]
391 --enable-ggi enable GGI video output [autodetect]
392 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
393 --enable-direct3d enable Direct3D video output [autodetect]
394 --enable-directx enable DirectX video output [autodetect]
395 --enable-dxr3 enable DXR3/H+ video output [autodetect]
396 --enable-ivtv enable IVTV TV-Out video output [autodetect]
397 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
398 --enable-dvb enable DVB video output [autodetect]
399 --enable-mga enable mga_vid video output [autodetect]
400 --enable-xmga enable mga_vid X11 video output [autodetect]
401 --enable-xv enable Xv video output [autodetect]
402 --enable-vdpau enable VDPAU acceleration [autodetect]
403 --enable-vm enable XF86VidMode support [autodetect]
404 --enable-xinerama enable Xinerama support [autodetect]
405 --enable-x11 enable X11 video output [autodetect]
406 --enable-xshape enable XShape support [autodetect]
407 --disable-xss disable screensaver support via xss [autodetect]
408 --enable-fbdev enable FBDev video output [autodetect]
409 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
410 --enable-tdfxfb enable tdfxfb video output [disable]
411 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
412 --enable-wii enable Nintendo Wii/GameCube video output [disable]
413 --enable-directfb enable DirectFB video output [autodetect]
414 --enable-bl enable Blinkenlights video output [disable]
415 --enable-tdfxvid enable tdfx_vid video output [disable]
416 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
417 --disable-tga disable Targa video output [enable]
418 --disable-pnm disable PNM video output [enable]
419 --disable-md5sum disable md5sum video output [enable]
420 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
421 --disable-corevideo disable CoreVideo video output [autodetect]
422 --disable-cocoa disable Cocoa OpenGL backend [autodetect]
423 --disable-quartz disable Quartz video output [autodetect]
425 Audio output:
426 --disable-alsa disable ALSA audio output [autodetect]
427 --disable-ossaudio disable OSS audio output [autodetect]
428 --disable-arts disable aRts audio output [autodetect]
429 --disable-esd disable esd audio output [autodetect]
430 --disable-rsound disable RSound audio output [autodetect]
431 --disable-pulse disable Pulseaudio audio output [autodetect]
432 --disable-jack disable JACK audio output [autodetect]
433 --enable-openal enable OpenAL audio output [disable]
434 --disable-nas disable NAS audio output [autodetect]
435 --disable-sgiaudio disable SGI audio output [autodetect]
436 --disable-sunaudio disable Sun audio output [autodetect]
437 --disable-kai disable KAI audio output [autodetect]
438 --disable-dart disable DART audio output [autodetect]
439 --disable-win32waveout disable Windows waveout audio output [autodetect]
440 --disable-coreaudio disable CoreAudio audio output [autodetect]
441 --disable-select disable using select() on the audio device [enable]
443 Language options:
444 --enable-translation enable support for translated output [disable]
445 --charset=charset convert the console messages to this character set
446 --language-doc=lang language to use for the documentation [en]
447 --language-man=lang language to use for the man pages [en]
448 --language-msg=lang extra languages for program messages [all]
449 --language=lang default language to use [en]
450 Specific options override --language. You can pass a list of languages separated
451 by whitespace or commas instead of a single language. Nonexisting translations
452 will be dropped from each list. All translations available in the list will be
453 installed. The value "all" will activate all translations. The LINGUAS
454 environment variable is honored. In all cases the fallback is English.
455 The program always supports English-language output; additional message
456 languages are only installed if --enable-translation is also specified.
457 Available values for --language-doc are: all $doc_lang_all
458 Available values for --language-man are: all $man_lang_all
459 Available values for --language-msg are: all $msg_lang_all
461 Miscellaneous options:
462 --enable-runtime-cpudetection enable runtime CPU detection [disable]
463 --enable-cross-compile enable cross-compilation [autodetect]
464 --cc=COMPILER C compiler to build MPlayer [gcc]
465 --host-cc=COMPILER C compiler for tools needed while building [gcc]
466 --as=ASSEMBLER assembler to build MPlayer [as]
467 --nm=NM nm tool to build MPlayer [nm]
468 --yasm=YASM Yasm assembler to build MPlayer [yasm]
469 --ar=AR librarian to build MPlayer [ar]
470 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
471 --windres=WINDRES windres to build MPlayer [windres]
472 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
473 --enable-static build a statically linked binary
474 --with-install=PATH path to a custom install program
476 Advanced options:
477 --enable-mmx enable MMX [autodetect]
478 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
479 --enable-3dnow enable 3DNow! [autodetect]
480 --enable-3dnowext enable extended 3DNow! [autodetect]
481 --enable-sse enable SSE [autodetect]
482 --enable-sse2 enable SSE2 [autodetect]
483 --enable-ssse3 enable SSSE3 [autodetect]
484 --enable-shm enable shm [autodetect]
485 --enable-altivec enable AltiVec (PowerPC) [autodetect]
486 --enable-armv5te enable DSP extensions (ARM) [autodetect]
487 --enable-armv6 enable ARMv6 (ARM) [autodetect]
488 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
489 --enable-armvfp enable ARM VFP (ARM) [autodetect]
490 --enable-neon enable NEON (ARM) [autodetect]
491 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
492 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
493 --enable-big-endian force byte order to big-endian [autodetect]
494 --enable-debug[=1-3] compile-in debugging information [disable]
495 --enable-profile compile-in profiling information [disable]
496 --disable-sighandler disable sighandler for crashes [enable]
497 --enable-crash-debug enable automatic gdb attach on crash [disable]
499 Use these options if autodetection fails:
500 --extra-cflags=FLAGS extra CFLAGS
501 --extra-ldflags=FLAGS extra LDFLAGS
502 --extra-libs=FLAGS extra linker flags
503 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
505 --with-freetype-config=PATH path to freetype-config
506 --with-sdl-config=PATH path to sdl*-config
507 --with-dvdnav-config=PATH path to dvdnav-config
508 --with-dvdread-config=PATH path to dvdread-config
510 This configure script is NOT autoconf-based, even though its output is similar.
511 It will try to autodetect all configuration options. If you --enable an option
512 it will be forcefully turned on, skipping autodetection. This can break
513 compilation, so you need to know what you are doing.
515 exit 0
516 } #show_help()
518 # GOTCHA: the variables below defines the default behavior for autodetection
519 # and have - unless stated otherwise - at least 2 states : yes no
520 # If autodetection is available then the third state is: auto
521 _mmx=auto
522 _3dnow=auto
523 _3dnowext=auto
524 _mmxext=auto
525 _sse=auto
526 _sse2=auto
527 _ssse3=auto
528 _cmov=auto
529 _fast_cmov=auto
530 _fast_clz=auto
531 _armv5te=auto
532 _armv6=auto
533 _armv6t2=auto
534 _armvfp=auto
535 neon=auto
536 _iwmmxt=auto
537 _mtrr=auto
538 _altivec=auto
539 _install=install
540 _ranlib=ranlib
541 _windres=windres
542 _cc=cc
543 _ar=ar
544 test "$CC" && _cc="$CC"
545 _as=auto
546 _nm=auto
547 _yasm=yasm
548 _runtime_cpudetection=no
549 _cross_compile=auto
550 _prefix="/usr/local"
551 ffmpeg=auto
552 ffmpeg_internals=no
553 _mplayer=yes
554 _x11=auto
555 _xshape=auto
556 _xss=auto
557 _dga1=auto
558 _dga2=auto
559 _xv=auto
560 _vdpau=auto
561 _sdl=auto
562 _kva=auto
563 _direct3d=auto
564 _directx=auto
565 _win32waveout=auto
566 _nas=auto
567 _png=auto
568 _mng=auto
569 _jpeg=auto
570 _pnm=yes
571 _md5sum=yes
572 _yuv4mpeg=yes
573 _gif=auto
574 _gl=auto
575 _ggi=auto
576 _ggiwmh=auto
577 _aa=auto
578 _caca=auto
579 _svga=auto
580 _vesa=auto
581 _fbdev=auto
582 _dvb=auto
583 _dxr3=auto
584 _ivtv=auto
585 _v4l2=auto
586 _iconv=auto
587 _langinfo=auto
588 _rtc=auto
589 _ossaudio=auto
590 _arts=auto
591 _esd=auto
592 _rsound=auto
593 _pulse=auto
594 _jack=auto
595 _kai=auto
596 _dart=auto
597 _openal=no
598 _libcdio=auto
599 _mad=auto
600 _tremor=auto
601 _libvorbis=auto
602 _speex=auto
603 _theora=auto
604 _mpg123=auto
605 _liba52=auto
606 _libdca=auto
607 _faad=auto
608 _ladspa=auto
609 _libbs2b=auto
610 _xmms=no
611 _vcd=auto
612 _bluray=auto
613 _dvdnav=auto
614 _dvdnavconfig=dvdnav-config
615 _dvdreadconfig=dvdread-config
616 _dvdread=auto
617 _dvdread_internal=auto
618 _libdvdcss_internal=auto
619 _xanim=auto
620 _real=auto
621 _live=auto
622 _nemesi=auto
623 _native_rtsp=yes
624 _xinerama=auto
625 _mga=auto
626 _xmga=auto
627 _vm=auto
628 _xf86keysym=auto
629 _sgiaudio=auto
630 _sunaudio=auto
631 _alsa=auto
632 _fastmemcpy=yes
633 _unrar_exec=auto
634 _win32dll=auto
635 _select=yes
636 _radio=no
637 _radio_capture=no
638 _radio_v4l=auto
639 _radio_v4l2=auto
640 _radio_bsdbt848=auto
641 _tv=yes
642 _tv_v4l1=auto
643 _tv_v4l2=auto
644 _tv_bsdbt848=auto
645 _tv_dshow=auto
646 _pvr=auto
647 networking=yes
648 _winsock2_h=auto
649 _smb=auto
650 _joystick=no
651 _xvid=auto
652 _libnut=auto
653 _lirc=auto
654 _lircc=auto
655 _apple_remote=auto
656 _apple_ir=auto
657 _termcap=auto
658 _termios=auto
659 _3dfx=no
660 _s3fb=no
661 _wii=no
662 _tdfxfb=no
663 _tdfxvid=no
664 _xvr100=auto
665 _tga=yes
666 _directfb=auto
667 _bl=no
668 #language=en
669 _shm=auto
670 _translation=no
671 _charset="UTF-8"
672 _crash_debug=no
673 _sighandler=yes
674 _libdv=auto
675 _cdparanoia=auto
676 _cddb=auto
677 _big_endian=auto
678 _bitmap_font=yes
679 _freetype=auto
680 _fontconfig=auto
681 _qtx=auto
682 _coreaudio=auto
683 _corevideo=auto
684 _cocoa=auto
685 _quartz=auto
686 quicktime=auto
687 _macosx_finder=no
688 _macosx_bundle=auto
689 _sortsub=yes
690 _freetypeconfig='freetype-config'
691 _fribidi=auto
692 _enca=auto
693 _inet6=auto
694 _gethostbyname2=auto
695 _ftp=auto
696 _musepack=no
697 _vstream=auto
698 _pthreads=auto
699 _w32threads=auto
700 _ass=auto
701 _rpath=no
702 _asmalign_pot=auto
703 _stream_cache=yes
704 _priority=no
705 def_dos_paths="#define HAVE_DOS_PATHS 0"
706 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
707 def_priority="#undef CONFIG_PRIORITY"
708 def_pthread_cache="#undef PTHREAD_CACHE"
709 need_shmem=yes
710 for ac_option do
711 case "$ac_option" in
712 --help|-help|-h)
713 show_help
715 --prefix=*)
716 _prefix=$(echo $ac_option | cut -d '=' -f 2)
718 --bindir=*)
719 _bindir=$(echo $ac_option | cut -d '=' -f 2)
721 --datadir=*)
722 _datadir=$(echo $ac_option | cut -d '=' -f 2)
724 --mandir=*)
725 _mandir=$(echo $ac_option | cut -d '=' -f 2)
727 --confdir=*)
728 _confdir=$(echo $ac_option | cut -d '=' -f 2)
730 --libdir=*)
731 _libdir=$(echo $ac_option | cut -d '=' -f 2)
733 --codecsdir=*)
734 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
736 --localedir=*)
737 _localedir=$(echo $ac_option | cut -d '=' -f 2)
740 --with-install=*)
741 _install=$(echo $ac_option | cut -d '=' -f 2 )
744 --with-sdl-config=*)
745 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
747 --with-freetype-config=*)
748 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
750 --with-dvdnav-config=*)
751 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
753 --with-dvdread-config=*)
754 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
757 --extra-cflags=*)
758 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
760 --extra-ldflags=*)
761 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
763 --extra-libs=*)
764 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
766 --extra-libs-mplayer=*)
767 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
770 --target=*)
771 _target=$(echo $ac_option | cut -d '=' -f 2)
773 --cc=*)
774 _cc=$(echo $ac_option | cut -d '=' -f 2)
776 --host-cc=*)
777 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
779 --as=*)
780 _as=$(echo $ac_option | cut -d '=' -f 2)
782 --nm=*)
783 _nm=$(echo $ac_option | cut -d '=' -f 2)
785 --yasm=*)
786 _yasm=$(echo $ac_option | cut -d '=' -f 2)
788 --ar=*)
789 _ar=$(echo $ac_option | cut -d '=' -f 2)
791 --ranlib=*)
792 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
794 --windres=*)
795 _windres=$(echo $ac_option | cut -d '=' -f 2)
797 --charset=*)
798 _charset=$(echo $ac_option | cut -d '=' -f 2)
800 --language-doc=*)
801 language_doc=$(echo $ac_option | cut -d '=' -f 2)
803 --language-man=*)
804 language_man=$(echo $ac_option | cut -d '=' -f 2)
806 --language-msg=*)
807 language_msg=$(echo $ac_option | cut -d '=' -f 2)
809 --language=*)
810 language=$(echo $ac_option | cut -d '=' -f 2)
813 --enable-static)
814 _ld_static='-static'
816 --disable-static)
817 _ld_static=''
819 --enable-profile)
820 _profile='-p'
822 --disable-profile)
823 _profile=
825 --enable-debug)
826 _debug='-g'
828 --enable-debug=*)
829 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
831 --disable-debug)
832 _debug=
834 --enable-translation) _translation=yes ;;
835 --disable-translation) _translation=no ;;
836 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
837 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
838 --enable-cross-compile) _cross_compile=yes ;;
839 --disable-cross-compile) _cross_compile=no ;;
840 --enable-mplayer) _mplayer=yes ;;
841 --disable-mplayer) _mplayer=no ;;
842 --enable-x11) _x11=yes ;;
843 --disable-x11) _x11=no ;;
844 --enable-xshape) _xshape=yes ;;
845 --disable-xshape) _xshape=no ;;
846 --enable-xss) _xss=yes ;;
847 --disable-xss) _xss=no ;;
848 --enable-xv) _xv=yes ;;
849 --disable-xv) _xv=no ;;
850 --enable-vdpau) _vdpau=yes ;;
851 --disable-vdpau) _vdpau=no ;;
852 --enable-sdl) _sdl=yes ;;
853 --disable-sdl) _sdl=no ;;
854 --enable-kva) _kva=yes ;;
855 --disable-kva) _kva=no ;;
856 --enable-direct3d) _direct3d=yes ;;
857 --disable-direct3d) _direct3d=no ;;
858 --enable-directx) _directx=yes ;;
859 --disable-directx) _directx=no ;;
860 --enable-win32waveout) _win32waveout=yes ;;
861 --disable-win32waveout) _win32waveout=no ;;
862 --enable-nas) _nas=yes ;;
863 --disable-nas) _nas=no ;;
864 --enable-png) _png=yes ;;
865 --disable-png) _png=no ;;
866 --enable-mng) _mng=yes ;;
867 --disable-mng) _mng=no ;;
868 --enable-jpeg) _jpeg=yes ;;
869 --disable-jpeg) _jpeg=no ;;
870 --enable-pnm) _pnm=yes ;;
871 --disable-pnm) _pnm=no ;;
872 --enable-md5sum) _md5sum=yes ;;
873 --disable-md5sum) _md5sum=no ;;
874 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
875 --disable-yuv4mpeg) _yuv4mpeg=no ;;
876 --enable-gif) _gif=yes ;;
877 --disable-gif) _gif=no ;;
878 --enable-gl) _gl=yes ;;
879 --disable-gl) _gl=no ;;
880 --enable-ggi) _ggi=yes ;;
881 --disable-ggi) _ggi=no ;;
882 --enable-ggiwmh) _ggiwmh=yes ;;
883 --disable-ggiwmh) _ggiwmh=no ;;
884 --enable-aa) _aa=yes ;;
885 --disable-aa) _aa=no ;;
886 --enable-caca) _caca=yes ;;
887 --disable-caca) _caca=no ;;
888 --enable-svga) _svga=yes ;;
889 --disable-svga) _svga=no ;;
890 --enable-vesa) _vesa=yes ;;
891 --disable-vesa) _vesa=no ;;
892 --enable-fbdev) _fbdev=yes ;;
893 --disable-fbdev) _fbdev=no ;;
894 --enable-dvb) _dvb=yes ;;
895 --disable-dvb) _dvb=no ;;
896 --enable-dxr3) _dxr3=yes ;;
897 --disable-dxr3) _dxr3=no ;;
898 --enable-ivtv) _ivtv=yes ;;
899 --disable-ivtv) _ivtv=no ;;
900 --enable-v4l2) _v4l2=yes ;;
901 --disable-v4l2) _v4l2=no ;;
902 --enable-iconv) _iconv=yes ;;
903 --disable-iconv) _iconv=no ;;
904 --enable-langinfo) _langinfo=yes ;;
905 --disable-langinfo) _langinfo=no ;;
906 --enable-rtc) _rtc=yes ;;
907 --disable-rtc) _rtc=no ;;
908 --enable-libdv) _libdv=yes ;;
909 --disable-libdv) _libdv=no ;;
910 --enable-ossaudio) _ossaudio=yes ;;
911 --disable-ossaudio) _ossaudio=no ;;
912 --enable-arts) _arts=yes ;;
913 --disable-arts) _arts=no ;;
914 --enable-esd) _esd=yes ;;
915 --disable-esd) _esd=no ;;
916 --enable-rsound) _rsound=yes ;;
917 --disable-rsound) _rsound=no ;;
918 --enable-pulse) _pulse=yes ;;
919 --disable-pulse) _pulse=no ;;
920 --enable-jack) _jack=yes ;;
921 --disable-jack) _jack=no ;;
922 --enable-openal) _openal=yes ;;
923 --disable-openal) _openal=no ;;
924 --enable-kai) _kai=yes ;;
925 --disable-kai) _kai=no ;;
926 --enable-dart) _dart=yes ;;
927 --disable-dart) _dart=no ;;
928 --enable-mad) _mad=yes ;;
929 --disable-mad) _mad=no ;;
930 --enable-libcdio) _libcdio=yes ;;
931 --disable-libcdio) _libcdio=no ;;
932 --enable-libvorbis) _libvorbis=yes ;;
933 --disable-libvorbis) _libvorbis=no ;;
934 --enable-speex) _speex=yes ;;
935 --disable-speex) _speex=no ;;
936 --enable-tremor) _tremor=yes ;;
937 --disable-tremor) _tremor=no ;;
938 --enable-theora) _theora=yes ;;
939 --disable-theora) _theora=no ;;
940 --enable-mpg123) _mpg123=yes ;;
941 --disable-mpg123) _mpg123=no ;;
942 --enable-liba52) _liba52=yes ;;
943 --disable-liba52) _liba52=no ;;
944 --enable-libdca) _libdca=yes ;;
945 --disable-libdca) _libdca=no ;;
946 --enable-musepack) _musepack=yes ;;
947 --disable-musepack) _musepack=no ;;
948 --enable-faad) _faad=yes ;;
949 --disable-faad) _faad=no ;;
950 --enable-ladspa) _ladspa=yes ;;
951 --disable-ladspa) _ladspa=no ;;
952 --enable-libbs2b) _libbs2b=yes ;;
953 --disable-libbs2b) _libbs2b=no ;;
954 --enable-xmms) _xmms=yes ;;
955 --disable-xmms) _xmms=no ;;
956 --enable-vcd) _vcd=yes ;;
957 --disable-vcd) _vcd=no ;;
958 --enable-bluray) _bluray=yes ;;
959 --disable-bluray) _bluray=no ;;
960 --enable-dvdread) _dvdread=yes ;;
961 --disable-dvdread) _dvdread=no ;;
962 --enable-dvdread-internal) _dvdread_internal=yes ;;
963 --disable-dvdread-internal) _dvdread_internal=no ;;
964 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
965 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
966 --enable-dvdnav) _dvdnav=yes ;;
967 --disable-dvdnav) _dvdnav=no ;;
968 --enable-xanim) _xanim=yes ;;
969 --disable-xanim) _xanim=no ;;
970 --enable-real) _real=yes ;;
971 --disable-real) _real=no ;;
972 --enable-live) _live=yes ;;
973 --disable-live) _live=no ;;
974 --enable-nemesi) _nemesi=yes ;;
975 --disable-nemesi) _nemesi=no ;;
976 --enable-xinerama) _xinerama=yes ;;
977 --disable-xinerama) _xinerama=no ;;
978 --enable-mga) _mga=yes ;;
979 --disable-mga) _mga=no ;;
980 --enable-xmga) _xmga=yes ;;
981 --disable-xmga) _xmga=no ;;
982 --enable-vm) _vm=yes ;;
983 --disable-vm) _vm=no ;;
984 --enable-xf86keysym) _xf86keysym=yes ;;
985 --disable-xf86keysym) _xf86keysym=no ;;
986 --enable-sunaudio) _sunaudio=yes ;;
987 --disable-sunaudio) _sunaudio=no ;;
988 --enable-sgiaudio) _sgiaudio=yes ;;
989 --disable-sgiaudio) _sgiaudio=no ;;
990 --enable-alsa) _alsa=yes ;;
991 --disable-alsa) _alsa=no ;;
992 --enable-tv) _tv=yes ;;
993 --disable-tv) _tv=no ;;
994 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
995 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
996 --enable-tv-v4l1) _tv_v4l1=yes ;;
997 --disable-tv-v4l1) _tv_v4l1=no ;;
998 --enable-tv-v4l2) _tv_v4l2=yes ;;
999 --disable-tv-v4l2) _tv_v4l2=no ;;
1000 --enable-tv-dshow) _tv_dshow=yes ;;
1001 --disable-tv-dshow) _tv_dshow=no ;;
1002 --enable-radio) _radio=yes ;;
1003 --enable-radio-capture) _radio_capture=yes ;;
1004 --disable-radio-capture) _radio_capture=no ;;
1005 --disable-radio) _radio=no ;;
1006 --enable-radio-v4l) _radio_v4l=yes ;;
1007 --disable-radio-v4l) _radio_v4l=no ;;
1008 --enable-radio-v4l2) _radio_v4l2=yes ;;
1009 --disable-radio-v4l2) _radio_v4l2=no ;;
1010 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1011 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1012 --enable-pvr) _pvr=yes ;;
1013 --disable-pvr) _pvr=no ;;
1014 --enable-fastmemcpy) _fastmemcpy=yes ;;
1015 --disable-fastmemcpy) _fastmemcpy=no ;;
1016 --enable-networking) networking=yes ;;
1017 --disable-networking) networking=no ;;
1018 --enable-winsock2_h) _winsock2_h=yes ;;
1019 --disable-winsock2_h) _winsock2_h=no ;;
1020 --enable-smb) _smb=yes ;;
1021 --disable-smb) _smb=no ;;
1022 --enable-joystick) _joystick=yes ;;
1023 --disable-joystick) _joystick=no ;;
1024 --enable-xvid) _xvid=yes ;;
1025 --disable-xvid) _xvid=no ;;
1026 --enable-libnut) _libnut=yes ;;
1027 --disable-libnut) _libnut=no ;;
1028 --enable-libav) ffmpeg=yes ;;
1029 --ffmpeg-source-dir=*)
1030 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1032 --enable-lirc) _lirc=yes ;;
1033 --disable-lirc) _lirc=no ;;
1034 --enable-lircc) _lircc=yes ;;
1035 --disable-lircc) _lircc=no ;;
1036 --enable-apple-remote) _apple_remote=yes ;;
1037 --disable-apple-remote) _apple_remote=no ;;
1038 --enable-apple-ir) _apple_ir=yes ;;
1039 --disable-apple-ir) _apple_ir=no ;;
1040 --enable-termcap) _termcap=yes ;;
1041 --disable-termcap) _termcap=no ;;
1042 --enable-termios) _termios=yes ;;
1043 --disable-termios) _termios=no ;;
1044 --enable-3dfx) _3dfx=yes ;;
1045 --disable-3dfx) _3dfx=no ;;
1046 --enable-s3fb) _s3fb=yes ;;
1047 --disable-s3fb) _s3fb=no ;;
1048 --enable-wii) _wii=yes ;;
1049 --disable-wii) _wii=no ;;
1050 --enable-tdfxfb) _tdfxfb=yes ;;
1051 --disable-tdfxfb) _tdfxfb=no ;;
1052 --disable-tdfxvid) _tdfxvid=no ;;
1053 --enable-tdfxvid) _tdfxvid=yes ;;
1054 --disable-xvr100) _xvr100=no ;;
1055 --enable-xvr100) _xvr100=yes ;;
1056 --disable-tga) _tga=no ;;
1057 --enable-tga) _tga=yes ;;
1058 --enable-directfb) _directfb=yes ;;
1059 --disable-directfb) _directfb=no ;;
1060 --enable-bl) _bl=yes ;;
1061 --disable-bl) _bl=no ;;
1062 --enable-mtrr) _mtrr=yes ;;
1063 --disable-mtrr) _mtrr=no ;;
1064 --enable-shm) _shm=yes ;;
1065 --disable-shm) _shm=no ;;
1066 --enable-select) _select=yes ;;
1067 --disable-select) _select=no ;;
1068 --enable-cdparanoia) _cdparanoia=yes ;;
1069 --disable-cdparanoia) _cdparanoia=no ;;
1070 --enable-cddb) _cddb=yes ;;
1071 --disable-cddb) _cddb=no ;;
1072 --enable-big-endian) _big_endian=yes ;;
1073 --disable-big-endian) _big_endian=no ;;
1074 --enable-bitmap-font) _bitmap_font=yes ;;
1075 --disable-bitmap-font) _bitmap_font=no ;;
1076 --enable-freetype) _freetype=yes ;;
1077 --disable-freetype) _freetype=no ;;
1078 --enable-fontconfig) _fontconfig=yes ;;
1079 --disable-fontconfig) _fontconfig=no ;;
1080 --enable-unrarexec) _unrar_exec=yes ;;
1081 --disable-unrarexec) _unrar_exec=no ;;
1082 --enable-ftp) _ftp=yes ;;
1083 --disable-ftp) _ftp=no ;;
1084 --enable-vstream) _vstream=yes ;;
1085 --disable-vstream) _vstream=no ;;
1086 --enable-pthreads) _pthreads=yes ;;
1087 --disable-pthreads) _pthreads=no ;;
1088 --enable-w32threads) _w32threads=yes ;;
1089 --disable-w32threads) _w32threads=no ;;
1090 --enable-libass) _ass=yes ;;
1091 --disable-libass) _ass=no ;;
1092 --enable-rpath) _rpath=yes ;;
1093 --disable-rpath) _rpath=no ;;
1095 --enable-fribidi) _fribidi=yes ;;
1096 --disable-fribidi) _fribidi=no ;;
1098 --enable-enca) _enca=yes ;;
1099 --disable-enca) _enca=no ;;
1101 --enable-inet6) _inet6=yes ;;
1102 --disable-inet6) _inet6=no ;;
1104 --enable-gethostbyname2) _gethostbyname2=yes ;;
1105 --disable-gethostbyname2) _gethostbyname2=no ;;
1107 --enable-dga1) _dga1=yes ;;
1108 --disable-dga1) _dga1=no ;;
1109 --enable-dga2) _dga2=yes ;;
1110 --disable-dga2) _dga2=no ;;
1112 --enable-qtx) _qtx=yes ;;
1113 --disable-qtx) _qtx=no ;;
1115 --enable-coreaudio) _coreaudio=yes ;;
1116 --disable-coreaudio) _coreaudio=no ;;
1117 --enable-corevideo) _corevideo=yes ;;
1118 --disable-corevideo) _corevideo=no ;;
1119 --enable-cocoa) _cocoa=yes ;;
1120 --disable-cocoa) _cocoa=no ;;
1121 --enable-quartz) _quartz=yes ;;
1122 --disable-quartz) _quartz=no ;;
1123 --enable-macosx-finder) _macosx_finder=yes ;;
1124 --disable-macosx-finder) _macosx_finder=no ;;
1125 --enable-macosx-bundle) _macosx_bundle=yes ;;
1126 --disable-macosx-bundle) _macosx_bundle=no ;;
1128 --enable-sortsub) _sortsub=yes ;;
1129 --disable-sortsub) _sortsub=no ;;
1131 --enable-crash-debug) _crash_debug=yes ;;
1132 --disable-crash-debug) _crash_debug=no ;;
1133 --enable-sighandler) _sighandler=yes ;;
1134 --disable-sighandler) _sighandler=no ;;
1135 --enable-win32dll) _win32dll=yes ;;
1136 --disable-win32dll) _win32dll=no ;;
1138 --enable-sse) _sse=yes ;;
1139 --disable-sse) _sse=no ;;
1140 --enable-sse2) _sse2=yes ;;
1141 --disable-sse2) _sse2=no ;;
1142 --enable-ssse3) _ssse3=yes ;;
1143 --disable-ssse3) _ssse3=no ;;
1144 --enable-mmxext) _mmxext=yes ;;
1145 --disable-mmxext) _mmxext=no ;;
1146 --enable-3dnow) _3dnow=yes ;;
1147 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1148 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1149 --disable-3dnowext) _3dnowext=no ;;
1150 --enable-cmov) _cmov=yes ;;
1151 --disable-cmov) _cmov=no ;;
1152 --enable-fast-cmov) _fast_cmov=yes ;;
1153 --disable-fast-cmov) _fast_cmov=no ;;
1154 --enable-fast-clz) _fast_clz=yes ;;
1155 --disable-fast-clz) _fast_clz=no ;;
1156 --enable-altivec) _altivec=yes ;;
1157 --disable-altivec) _altivec=no ;;
1158 --enable-armv5te) _armv5te=yes ;;
1159 --disable-armv5te) _armv5te=no ;;
1160 --enable-armv6) _armv6=yes ;;
1161 --disable-armv6) _armv6=no ;;
1162 --enable-armv6t2) _armv6t2=yes ;;
1163 --disable-armv6t2) _armv6t2=no ;;
1164 --enable-armvfp) _armvfp=yes ;;
1165 --disable-armvfp) _armvfp=no ;;
1166 --enable-neon) neon=yes ;;
1167 --disable-neon) neon=no ;;
1168 --enable-iwmmxt) _iwmmxt=yes ;;
1169 --disable-iwmmxt) _iwmmxt=no ;;
1170 --enable-mmx) _mmx=yes ;;
1171 --disable-mmx) # 3Dnow! and MMX2 require MMX
1172 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1175 echo "Unknown parameter: $ac_option" >&2
1176 exit 1
1179 esac
1180 done
1182 # Atmos: moved this here, to be correct, if --prefix is specified
1183 test -z "$_bindir" && _bindir="$_prefix/bin"
1184 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1185 test -z "$_mandir" && _mandir="$_prefix/share/man"
1186 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1187 test -z "$_libdir" && _libdir="$_prefix/lib"
1188 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1190 # Determine our OS name and CPU architecture
1191 if test -z "$_target" ; then
1192 # OS name
1193 system_name=$(uname -s 2>&1)
1194 case "$system_name" in
1195 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1197 Haiku)
1198 system_name=BeOS
1200 IRIX*)
1201 system_name=IRIX
1203 GNU/kFreeBSD)
1204 system_name=FreeBSD
1206 HP-UX*)
1207 system_name=HP-UX
1209 [cC][yY][gG][wW][iI][nN]*)
1210 system_name=CYGWIN
1212 MINGW32*)
1213 system_name=MINGW32
1215 OS/2*)
1216 system_name=OS/2
1219 system_name="$system_name-UNKNOWN"
1221 esac
1224 # host's CPU/instruction set
1225 host_arch=$(uname -p 2>&1)
1226 case "$host_arch" in
1227 i386|sparc|ppc|alpha|arm|mips|vax)
1229 powerpc) # Darwin returns 'powerpc'
1230 host_arch=ppc
1232 *) # uname -p on Linux returns 'unknown' for the processor type,
1233 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1235 # Maybe uname -m (machine hardware name) returns something we
1236 # recognize.
1238 # x86/x86pc is used by QNX
1239 case "$(uname -m 2>&1)" in
1240 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 ;;
1241 ia64) host_arch=ia64 ;;
1242 macppc|ppc) host_arch=ppc ;;
1243 ppc64) host_arch=ppc64 ;;
1244 alpha) host_arch=alpha ;;
1245 sparc) host_arch=sparc ;;
1246 sparc64) host_arch=sparc64 ;;
1247 parisc*|hppa*|9000*) host_arch=hppa ;;
1248 arm*|zaurus|cats) host_arch=arm ;;
1249 sh3|sh4|sh4a) host_arch=sh ;;
1250 s390) host_arch=s390 ;;
1251 s390x) host_arch=s390x ;;
1252 *mips*) host_arch=mips ;;
1253 vax) host_arch=vax ;;
1254 xtensa*) host_arch=xtensa ;;
1255 *) host_arch=UNKNOWN ;;
1256 esac
1258 esac
1259 else # if test -z "$_target"
1260 system_name=$(echo $_target | cut -d '-' -f 2)
1261 case "$(echo $system_name | tr A-Z a-z)" in
1262 linux) system_name=Linux ;;
1263 freebsd) system_name=FreeBSD ;;
1264 gnu/kfreebsd) system_name=FreeBSD ;;
1265 netbsd) system_name=NetBSD ;;
1266 bsd/os) system_name=BSD/OS ;;
1267 openbsd) system_name=OpenBSD ;;
1268 dragonfly) system_name=DragonFly ;;
1269 sunos) system_name=SunOS ;;
1270 qnx) system_name=QNX ;;
1271 morphos) system_name=MorphOS ;;
1272 amigaos) system_name=AmigaOS ;;
1273 mingw32*) system_name=MINGW32 ;;
1274 esac
1275 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1276 host_arch=$(echo $_target | cut -d '-' -f 1)
1277 if test $(echo $host_arch) != "x86_64" ; then
1278 host_arch=$(echo $host_arch | tr '_' '-')
1282 extra_cflags="-I. $extra_cflags"
1283 _timer=timer-linux.c
1284 _getch=getch2.c
1285 if freebsd ; then
1286 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1287 extra_cflags="$extra_cflags -I/usr/local/include"
1290 if netbsd || dragonfly ; then
1291 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1292 extra_cflags="$extra_cflags -I/usr/pkg/include"
1295 if darwin; then
1296 extra_cflags="-mdynamic-no-pic $extra_cflags"
1297 if test "$(basename $_cc)" != "clang" ; then
1298 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1300 _timer=timer-darwin.c
1303 if aix ; then
1304 extra_ldflags="$extra_ldflags -lC"
1307 if irix ; then
1308 _ranlib='ar -r'
1309 elif linux ; then
1310 _ranlib='true'
1313 if win32 ; then
1314 _exesuf=".exe"
1315 extra_cflags="$extra_cflags -fno-common"
1316 # -lwinmm is always needed for osdep/timer-win2.c
1317 extra_ldflags="$extra_ldflags -lwinmm"
1318 _pe_executable=yes
1319 _timer=timer-win2.c
1320 _priority=yes
1321 def_dos_paths="#define HAVE_DOS_PATHS 1"
1322 def_priority="#define CONFIG_PRIORITY 1"
1325 if mingw32 ; then
1326 _getch=getch2-win.c
1327 need_shmem=no
1330 if amigaos ; then
1331 _select=no
1332 _sighandler=no
1333 _stream_cache=no
1334 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1335 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1338 if qnx ; then
1339 extra_ldflags="$extra_ldflags -lph"
1342 if os2 ; then
1343 _exesuf=".exe"
1344 _getch=getch2-os2.c
1345 need_shmem=no
1346 _priority=yes
1347 def_dos_paths="#define HAVE_DOS_PATHS 1"
1348 def_priority="#define CONFIG_PRIORITY 1"
1351 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1352 test "$tmpdir" && break
1353 done
1355 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1356 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1358 TMPLOG="config.log"
1359 TMPC="$mplayer_tmpdir/tmp.c"
1360 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1361 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1362 TMPH="$mplayer_tmpdir/tmp.h"
1363 TMPS="$mplayer_tmpdir/tmp.S"
1365 rm -f "$TMPLOG"
1366 echo configuration: $configuration > "$TMPLOG"
1367 echo >> "$TMPLOG"
1370 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1371 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1375 # Checking CC version...
1376 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1377 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1378 echocheck "$_cc version"
1379 cc_vendor=intel
1380 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1381 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1382 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1383 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1384 # TODO verify older icc/ecc compatibility
1385 case $cc_version in
1387 cc_version="v. ?.??, bad"
1388 cc_fail=yes
1390 10.1|11.0|11.1)
1391 cc_version="$cc_version, ok"
1394 cc_version="$cc_version, bad"
1395 cc_fail=yes
1397 esac
1398 echores "$cc_version"
1399 else
1400 for _cc in "$_cc" gcc cc ; do
1401 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1402 if test "$cc_name_tmp" = "gcc"; then
1403 cc_name=$cc_name_tmp
1404 echocheck "$_cc version"
1405 cc_vendor=gnu
1406 cc_version=$($_cc -dumpversion 2>&1)
1407 case $cc_version in
1408 2.96*)
1409 cc_fail=yes
1412 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1413 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1414 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1416 esac
1417 echores "$cc_version"
1418 break
1420 if $_cc -v 2>&1 | grep -q "clang"; then
1421 echocheck "$_cc version"
1422 cc_vendor=clang
1423 cc_version=$($_cc -dumpversion 2>&1)
1424 res_comment="experimental support only"
1425 echores "clang $cc_version"
1426 break
1428 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1429 if test "$cc_name_tmp" = "Sun C"; then
1430 echocheck "$_cc version"
1431 cc_vendor=sun
1432 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1433 res_comment="experimental support only"
1434 echores "Sun C $cc_version"
1435 break
1437 done
1438 fi # icc
1439 test "$cc_fail" = yes && die "unsupported compiler version"
1441 echocheck "working compiler"
1442 cflag_check "" || die "Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1443 echo "yes"
1445 if test -z "$_target" && x86 ; then
1446 cat > $TMPC << EOF
1447 int main(void) {
1448 int test[(int)sizeof(char *)-7];
1449 return 0;
1452 cc_check && host_arch=x86_64 || host_arch=i386
1455 echo "Detected operating system: $system_name"
1456 echo "Detected host architecture: $host_arch"
1458 echocheck "cross compilation"
1459 if test $_cross_compile = auto ; then
1460 _cross_compile=yes
1461 cflag_check "" && "$TMPEXE" && _cross_compile=no
1463 echores $_cross_compile
1465 if test $_cross_compile = yes; then
1466 tmp_run() {
1467 return 0
1469 test "$_host_cc" || _host_cc=cc
1472 echocheck "host cc"
1473 test "$_host_cc" || _host_cc=$_cc
1474 echores $_host_cc
1476 # ---
1478 # now that we know what compiler should be used for compilation, try to find
1479 # out which assembler is used by the $_cc compiler
1480 if test "$_as" = auto ; then
1481 _as=$($_cc -print-prog-name=as)
1482 test -z "$_as" && _as=as
1485 if test "$_nm" = auto ; then
1486 _nm=$($_cc -print-prog-name=nm)
1487 test -z "$_nm" && _nm=nm
1490 # XXX: this should be ok..
1491 _cpuinfo="echo"
1493 if test "$_runtime_cpudetection" = no ; then
1495 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1496 # FIXME: Remove the cygwin check once AMD CPUs are supported
1497 if test -r /proc/cpuinfo && ! cygwin; then
1498 # Linux with /proc mounted, extract CPU information from it
1499 _cpuinfo="cat /proc/cpuinfo"
1500 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1501 # FreeBSD with Linux emulation /proc mounted,
1502 # extract CPU information from it
1503 # Don't use it on x86 though, it never reports 3Dnow
1504 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1505 elif darwin && ! x86 ; then
1506 # use hostinfo on Darwin
1507 _cpuinfo="hostinfo"
1508 elif aix; then
1509 # use 'lsattr' on AIX
1510 _cpuinfo="lsattr -E -l proc0 -a type"
1511 elif x86; then
1512 # all other OSes try to extract CPU information from a small helper
1513 # program cpuinfo instead
1514 $_cc -o cpuinfo$_exesuf cpuinfo.c
1515 _cpuinfo="./cpuinfo$_exesuf"
1518 if x86 ; then
1519 # gather more CPU information
1520 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1521 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1522 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1523 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1524 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1526 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1528 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1529 -e s/xmm/sse/ -e s/kni/sse/)
1530 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1531 pparam=$(echo $pparam | sed -e 's/sse/sse mmxext/')
1533 for ext in $pparam ; do
1534 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1535 done
1537 echocheck "CPU vendor"
1538 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1540 echocheck "CPU type"
1541 echores "$pname"
1544 fi # test "$_runtime_cpudetection" = no
1546 if x86 && test "$_runtime_cpudetection" = no ; then
1547 extcheck() {
1548 if test "$1" = kernel_check ; then
1549 echocheck "kernel support of $2"
1550 cat > $TMPC <<EOF
1551 #include <stdlib.h>
1552 #include <signal.h>
1553 static void catch(int sig) { exit(1); }
1554 int main(void) {
1555 signal(SIGILL, catch);
1556 __asm__ volatile ("$3":::"memory"); return 0;
1560 if cc_check && tmp_run ; then
1561 eval _$2=yes
1562 echores "yes"
1563 _optimizing="$_optimizing $2"
1564 return 0
1565 else
1566 eval _$2=no
1567 echores "failed"
1568 echo "It seems that your kernel does not correctly support $2."
1569 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1570 return 1
1573 return 0
1576 extcheck $_mmx "mmx" "emms"
1577 extcheck $_mmxext "mmxext" "sfence"
1578 extcheck $_3dnow "3dnow" "femms"
1579 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1580 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1581 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1582 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1583 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1585 echocheck "mtrr support"
1586 if test "$_mtrr" = kernel_check ; then
1587 _mtrr="yes"
1588 _optimizing="$_optimizing mtrr"
1590 echores "$_mtrr"
1592 if test "$_gcc3_ext" != ""; then
1593 # if we had to disable sse/sse2 because the active kernel does not
1594 # support this instruction set extension, we also have to tell
1595 # gcc3 to not generate sse/sse2 instructions for normal C code
1596 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1602 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1603 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1604 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1605 subarch_all='X86_32 X86_64 PPC64'
1606 case "$host_arch" in
1607 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1608 arch='x86'
1609 subarch='x86_32'
1610 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1611 iproc=486
1612 proc=i486
1615 if test "$_runtime_cpudetection" = no ; then
1616 case "$pvendor" in
1617 AuthenticAMD)
1618 case "$pfamily" in
1619 3) proc=i386 iproc=386 ;;
1620 4) proc=i486 iproc=486 ;;
1621 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1622 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1623 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1624 proc=k6-3
1625 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1626 proc=geode
1627 elif test "$pmodel" -ge 8; then
1628 proc=k6-2
1629 elif test "$pmodel" -ge 6; then
1630 proc=k6
1631 else
1632 proc=i586
1635 6) iproc=686
1636 # It's a bit difficult to determine the correct type of Family 6
1637 # AMD CPUs just from their signature. Instead, we check directly
1638 # whether it supports SSE.
1639 if test "$_sse" = yes; then
1640 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1641 proc=athlon-xp
1642 else
1643 # Again, gcc treats athlon and athlon-tbird similarly.
1644 proc=athlon
1647 15) iproc=686
1648 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1649 # caught and remedied in the optimization tests below.
1650 proc=k8
1653 *) proc=amdfam10 iproc=686
1654 test $_fast_clz = "auto" && _fast_clz=yes
1656 esac
1658 GenuineIntel)
1659 case "$pfamily" in
1660 3) proc=i386 iproc=386 ;;
1661 4) proc=i486 iproc=486 ;;
1662 5) iproc=586
1663 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1664 proc=pentium-mmx # 4 is desktop, 8 is mobile
1665 else
1666 proc=i586
1669 6) iproc=686
1670 if test "$pmodel" -ge 15; then
1671 proc=core2
1672 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1673 proc=pentium-m
1674 elif test "$pmodel" -ge 7; then
1675 proc=pentium3
1676 elif test "$pmodel" -ge 3; then
1677 proc=pentium2
1678 else
1679 proc=i686
1681 test $_fast_clz = "auto" && _fast_clz=yes
1683 15) iproc=686
1684 # A nocona in 32-bit mode has no more capabilities than a prescott.
1685 if test "$pmodel" -ge 3; then
1686 proc=prescott
1687 else
1688 proc=pentium4
1689 test $_fast_clz = "auto" && _fast_clz=yes
1691 test $_fast_cmov = "auto" && _fast_cmov=no
1693 *) proc=prescott iproc=686 ;;
1694 esac
1696 CentaurHauls)
1697 case "$pfamily" in
1698 5) iproc=586
1699 if test "$pmodel" -ge 8; then
1700 proc=winchip2
1701 elif test "$pmodel" -ge 4; then
1702 proc=winchip-c6
1703 else
1704 proc=i586
1707 6) iproc=686
1708 if test "$pmodel" -ge 9; then
1709 proc=c3-2
1710 else
1711 proc=c3
1712 iproc=586
1715 *) proc=i686 iproc=i686 ;;
1716 esac
1718 unknown)
1719 case "$pfamily" in
1720 3) proc=i386 iproc=386 ;;
1721 4) proc=i486 iproc=486 ;;
1722 *) proc=i586 iproc=586 ;;
1723 esac
1726 proc=i586 iproc=586 ;;
1727 esac
1728 test $_fast_clz = "auto" && _fast_clz=no
1729 fi # test "$_runtime_cpudetection" = no
1732 # check that gcc supports our CPU, if not, fall back to earlier ones
1733 # LGB: check -mcpu and -march swithing step by step with enabling
1734 # to fall back till 386.
1736 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1738 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1739 cpuopt=-mtune
1740 else
1741 cpuopt=-mcpu
1744 echocheck "GCC & CPU optimization abilities"
1745 if test "$_runtime_cpudetection" = no ; then
1746 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1747 cflag_check -march=native && proc=native
1749 if test "$proc" = "amdfam10"; then
1750 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1752 if test "$proc" = "k8"; then
1753 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1755 if test "$proc" = "athlon-xp"; then
1756 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1758 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1759 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1761 if test "$proc" = "k6" || test "$proc" = "c3"; then
1762 if ! cflag_check -march=$proc $cpuopt=$proc; then
1763 if cflag_check -march=i586 $cpuopt=i686; then
1764 proc=i586-i686
1765 else
1766 proc=i586
1770 if test "$proc" = "prescott" ; then
1771 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1773 if test "$proc" = "core2" ; then
1774 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1776 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
1777 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1779 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1780 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1782 if test "$proc" = "i586"; then
1783 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1785 if test "$proc" = "i486" ; then
1786 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1788 if test "$proc" = "i386" ; then
1789 cflag_check -march=$proc $cpuopt=$proc || proc=error
1791 if test "$proc" = "error" ; then
1792 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1793 _mcpu=""
1794 _march=""
1795 _optimizing=""
1796 elif test "$proc" = "i586-i686"; then
1797 _march="-march=i586"
1798 _mcpu="$cpuopt=i686"
1799 _optimizing="$proc"
1800 else
1801 _march="-march=$proc"
1802 _mcpu="$cpuopt=$proc"
1803 _optimizing="$proc"
1805 else # if test "$_runtime_cpudetection" = no
1806 _mcpu="$cpuopt=generic"
1807 # at least i486 required, for bswap instruction
1808 _march="-march=i486"
1809 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1810 cflag_check $_mcpu || _mcpu=""
1811 cflag_check $_march $_mcpu || _march=""
1814 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1815 ## autodetected mcpu/march parameters
1816 if test "$_target" ; then
1817 # TODO: it may be a good idea to check GCC and fall back in all cases
1818 if test "$host_arch" = "i586-i686"; then
1819 _march="-march=i586"
1820 _mcpu="$cpuopt=i686"
1821 else
1822 _march="-march=$host_arch"
1823 _mcpu="$cpuopt=$host_arch"
1826 proc="$host_arch"
1828 case "$proc" in
1829 i386) iproc=386 ;;
1830 i486) iproc=486 ;;
1831 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1832 i686|athlon*|pentium*) iproc=686 ;;
1833 *) iproc=586 ;;
1834 esac
1837 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1838 _fast_cmov="yes"
1839 else
1840 _fast_cmov="no"
1842 test $_fast_clz = "auto" && _fast_clz=yes
1844 echores "$proc"
1847 ia64)
1848 arch='ia64'
1849 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1850 iproc='ia64'
1853 x86_64|amd64)
1854 arch='x86'
1855 subarch='x86_64'
1856 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1857 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1858 iproc='x86_64'
1860 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1861 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1862 cpuopt=-mtune
1863 else
1864 cpuopt=-mcpu
1866 if test "$_runtime_cpudetection" = no ; then
1867 case "$pvendor" in
1868 AuthenticAMD)
1869 case "$pfamily" in
1870 15) proc=k8
1871 test $_fast_clz = "auto" && _fast_clz=no
1873 *) proc=amdfam10;;
1874 esac
1876 GenuineIntel)
1877 case "$pfamily" in
1878 6) proc=core2;;
1880 # 64-bit prescotts exist, but as far as GCC is concerned they
1881 # have the same capabilities as a nocona.
1882 proc=nocona
1883 test $_fast_cmov = "auto" && _fast_cmov=no
1884 test $_fast_clz = "auto" && _fast_clz=no
1886 esac
1889 proc=error;;
1890 esac
1891 fi # test "$_runtime_cpudetection" = no
1893 echocheck "GCC & CPU optimization abilities"
1894 # This is a stripped-down version of the i386 fallback.
1895 if test "$_runtime_cpudetection" = no ; then
1896 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1897 cflag_check -march=native && proc=native
1899 # --- AMD processors ---
1900 if test "$proc" = "amdfam10"; then
1901 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1903 if test "$proc" = "k8"; then
1904 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1906 # This will fail if gcc version < 3.3, which is ok because earlier
1907 # versions don't really support 64-bit on amd64.
1908 # Is this a valid assumption? -Corey
1909 if test "$proc" = "athlon-xp"; then
1910 cflag_check -march=$proc $cpuopt=$proc || proc=error
1912 # --- Intel processors ---
1913 if test "$proc" = "core2"; then
1914 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
1916 if test "$proc" = "x86-64"; then
1917 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
1919 if test "$proc" = "nocona"; then
1920 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1922 if test "$proc" = "pentium4"; then
1923 cflag_check -march=$proc $cpuopt=$proc || proc=error
1926 _march="-march=$proc"
1927 _mcpu="$cpuopt=$proc"
1928 if test "$proc" = "error" ; then
1929 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1930 _mcpu=""
1931 _march=""
1933 else # if test "$_runtime_cpudetection" = no
1934 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1935 _march="-march=x86-64"
1936 _mcpu="$cpuopt=generic"
1937 cflag_check $_mcpu || _mcpu="x86-64"
1938 cflag_check $_mcpu || _mcpu=""
1939 cflag_check $_march $_mcpu || _march=""
1942 _optimizing="$proc"
1943 test $_fast_cmov = "auto" && _fast_cmov=yes
1944 test $_fast_clz = "auto" && _fast_clz=yes
1946 echores "$proc"
1949 sparc|sparc64)
1950 arch='sparc'
1951 iproc='sparc'
1952 if test "$host_arch" = "sparc64" ; then
1953 _vis='yes'
1954 proc='ultrasparc'
1955 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1956 elif sunos ; then
1957 echocheck "CPU type"
1958 karch=$(uname -m)
1959 case "$(echo $karch)" in
1960 sun4) proc=v7 ;;
1961 sun4c) proc=v7 ;;
1962 sun4d) proc=v8 ;;
1963 sun4m) proc=v8 ;;
1964 sun4u) proc=ultrasparc _vis='yes' ;;
1965 sun4v) proc=v9 ;;
1966 *) proc=v8 ;;
1967 esac
1968 echores "$proc"
1969 else
1970 proc=v8
1972 _mcpu="-mcpu=$proc"
1973 _optimizing="$proc"
1976 arm*)
1977 arch='arm'
1978 iproc='arm'
1981 avr32)
1982 arch='avr32'
1983 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1984 iproc='avr32'
1985 test $_fast_clz = "auto" && _fast_clz=yes
1988 sh|sh4)
1989 arch='sh4'
1990 iproc='sh4'
1993 ppc|ppc64|powerpc|powerpc64)
1994 arch='ppc'
1995 def_dcbzl='#define HAVE_DCBZL 0'
1996 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1997 iproc='ppc'
1999 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2000 subarch='ppc64'
2001 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2003 echocheck "CPU type"
2004 case $system_name in
2005 Linux)
2006 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2007 if test -n "$($_cpuinfo | grep altivec)"; then
2008 test $_altivec = auto && _altivec=yes
2011 Darwin)
2012 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2013 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2014 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2015 test $_altivec = auto && _altivec=yes
2018 NetBSD)
2019 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2020 case $cc_version in
2021 2*|3.0*|3.1*|3.2*|3.3*)
2024 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2025 test $_altivec = auto && _altivec=yes
2028 esac
2030 AIX)
2031 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2033 esac
2034 if test "$_altivec" = yes; then
2035 echores "$proc altivec"
2036 else
2037 _altivec=no
2038 echores "$proc"
2041 echocheck "GCC & CPU optimization abilities"
2043 if test -n "$proc"; then
2044 case "$proc" in
2045 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2046 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2047 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2048 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2049 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2050 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2051 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2052 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2053 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2054 *) ;;
2055 esac
2056 # gcc 3.1(.1) and up supports 7400 and 7450
2057 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2058 case "$proc" in
2059 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2060 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2061 *) ;;
2062 esac
2064 # gcc 3.2 and up supports 970
2065 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2066 case "$proc" in
2067 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2068 def_dcbzl='#define HAVE_DCBZL 1' ;;
2069 *) ;;
2070 esac
2072 # gcc 3.3 and up supports POWER4
2073 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2074 case "$proc" in
2075 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2076 *) ;;
2077 esac
2079 # gcc 3.4 and up supports 440*
2080 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2081 case "$proc" in
2082 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2083 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2084 *) ;;
2085 esac
2087 # gcc 4.0 and up supports POWER5
2088 if test "$_cc_major" -ge "4"; then
2089 case "$proc" in
2090 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2091 *) ;;
2092 esac
2096 if test -n "$_mcpu"; then
2097 _optimizing=$(echo $_mcpu | cut -c 8-)
2098 echores "$_optimizing"
2099 else
2100 echores "none"
2103 test $_fast_clz = "auto" && _fast_clz=yes
2107 alpha*)
2108 arch='alpha'
2109 iproc='alpha'
2110 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2112 echocheck "CPU type"
2113 cat > $TMPC << EOF
2114 int main(void) {
2115 unsigned long ver, mask;
2116 __asm__ ("implver %0" : "=r" (ver));
2117 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2118 printf("%ld-%x\n", ver, ~mask);
2119 return 0;
2122 $_cc -o "$TMPEXE" "$TMPC"
2123 case $("$TMPEXE") in
2125 0-0) proc="ev4"; _mvi="0";;
2126 1-0) proc="ev5"; _mvi="0";;
2127 1-1) proc="ev56"; _mvi="0";;
2128 1-101) proc="pca56"; _mvi="1";;
2129 2-303) proc="ev6"; _mvi="1";;
2130 2-307) proc="ev67"; _mvi="1";;
2131 2-1307) proc="ev68"; _mvi="1";;
2132 esac
2133 echores "$proc"
2135 echocheck "GCC & CPU optimization abilities"
2136 if test "$proc" = "ev68" ; then
2137 cc_check -mcpu=$proc || proc=ev67
2139 if test "$proc" = "ev67" ; then
2140 cc_check -mcpu=$proc || proc=ev6
2142 _mcpu="-mcpu=$proc"
2143 echores "$proc"
2145 test $_fast_clz = "auto" && _fast_clz=yes
2147 _optimizing="$proc"
2150 mips*)
2151 arch='mips'
2152 iproc='mips'
2154 if irix ; then
2155 echocheck "CPU type"
2156 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2157 case "$(echo $proc)" in
2158 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2159 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2160 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2161 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2162 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2163 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2164 esac
2165 # gcc < 3.x does not support -mtune.
2166 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2167 _mcpu=''
2169 echores "$proc"
2172 test $_fast_clz = "auto" && _fast_clz=yes
2176 hppa)
2177 arch='pa_risc'
2178 iproc='PA-RISC'
2181 s390)
2182 arch='s390'
2183 iproc='390'
2186 s390x)
2187 arch='s390x'
2188 iproc='390x'
2191 vax)
2192 arch='vax'
2193 iproc='vax'
2196 xtensa)
2197 arch='xtensa'
2198 iproc='xtensa'
2201 generic)
2202 arch='generic'
2206 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2207 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2208 die "unsupported architecture $host_arch"
2210 esac # case "$host_arch" in
2212 if test "$_runtime_cpudetection" = yes ; then
2213 if x86 ; then
2214 test "$_cmov" != no && _cmov=yes
2215 x86_32 && _cmov=no
2216 test "$_mmx" != no && _mmx=yes
2217 test "$_3dnow" != no && _3dnow=yes
2218 test "$_3dnowext" != no && _3dnowext=yes
2219 test "$_mmxext" != no && _mmxext=yes
2220 test "$_sse" != no && _sse=yes
2221 test "$_sse2" != no && _sse2=yes
2222 test "$_ssse3" != no && _ssse3=yes
2223 test "$_mtrr" != no && _mtrr=yes
2225 if ppc; then
2226 _altivec=yes
2231 # endian testing
2232 echocheck "byte order"
2233 if test "$_big_endian" = auto ; then
2234 cat > $TMPC <<EOF
2235 short ascii_name[] = {
2236 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2237 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2238 int main(void) { return (long)ascii_name; }
2240 if cc_check ; then
2241 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2242 _big_endian=yes
2243 else
2244 _big_endian=no
2246 else
2247 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2250 if test "$_big_endian" = yes ; then
2251 _byte_order='big-endian'
2252 def_words_endian='#define WORDS_BIGENDIAN 1'
2253 def_bigendian='#define HAVE_BIGENDIAN 1'
2254 else
2255 _byte_order='little-endian'
2256 def_words_endian='#undef WORDS_BIGENDIAN'
2257 def_bigendian='#define HAVE_BIGENDIAN 0'
2259 echores "$_byte_order"
2262 echocheck "extern symbol prefix"
2263 cat > $TMPC << EOF
2264 int ff_extern;
2266 cc_check -c || die "Symbol mangling check failed."
2267 sym=$($_nm -P -g $TMPEXE)
2268 extern_prefix=${sym%%ff_extern*}
2269 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2270 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2271 echores $extern_prefix
2274 echocheck "assembler support of -pipe option"
2275 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2276 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2279 if darwin && test "$cc_vendor" = "gnu" ; then
2280 echocheck "GCC support of -mstackrealign"
2281 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2282 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2283 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2284 # wrong code with this flag, but this can be worked around by adding
2285 # -fno-unit-at-a-time as described in the blog post at
2286 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2287 cat > $TMPC << EOF
2288 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2289 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2291 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2292 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time &&
2293 tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2294 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2295 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2298 # Checking for CFLAGS
2299 _install_strip="-s"
2300 if test "$_profile" != "" || test "$_debug" != "" ; then
2301 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2302 WARNFLAGS="-W -Wall"
2303 _install_strip=
2304 elif test -z "$CFLAGS" ; then
2305 if test "$cc_vendor" = "intel" ; then
2306 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2307 WARNFLAGS="-wd167 -wd556 -wd144"
2308 elif test "$cc_vendor" = "sun" ; then
2309 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2310 elif test "$cc_vendor" = "clang"; then
2311 CFLAGS="-O2 $_march $_pipe"
2312 WARNFLAGS="-Wall -Wno-switch-enum -Wno-logical-op-parentheses -Wpointer-arith -Wundef -Wno-pointer-sign -Wmissing-prototypes"
2313 ERRORFLAGS="-Werror=implicit-function-declaration"
2314 elif test "$cc_vendor" != "gnu" ; then
2315 CFLAGS="-O2 $_march $_mcpu $_pipe"
2316 else
2317 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2318 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2319 ERRORFLAGS="-Werror-implicit-function-declaration"
2320 extra_ldflags="$extra_ldflags -ffast-math"
2322 else
2323 warn_cflags=yes
2326 if test "$cc_vendor" = "gnu" ; then
2327 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2328 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2329 # that's the only variable specific to C now, and this option is not valid
2330 # for C++.
2331 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2332 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2333 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2334 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2335 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2336 else
2337 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2340 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2341 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2344 if test -n "$LDFLAGS" ; then
2345 extra_ldflags="$extra_ldflags $LDFLAGS"
2346 warn_cflags=yes
2347 elif test "$cc_vendor" = "intel" ; then
2348 extra_ldflags="$extra_ldflags -i-static"
2350 if test -n "$CPPFLAGS" ; then
2351 extra_cflags="$extra_cflags $CPPFLAGS"
2352 warn_cflags=yes
2357 if x86_32 ; then
2358 # Checking assembler (_as) compatibility...
2359 # Added workaround for older as that reads from stdin by default - atmos
2360 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2361 echocheck "assembler ($_as $as_version)"
2363 _pref_as_version='2.9.1'
2364 echo 'nop' > $TMPS
2365 if test "$_mmx" = yes ; then
2366 echo 'emms' >> $TMPS
2368 if test "$_3dnow" = yes ; then
2369 _pref_as_version='2.10.1'
2370 echo 'femms' >> $TMPS
2372 if test "$_3dnowext" = yes ; then
2373 _pref_as_version='2.10.1'
2374 echo 'pswapd %mm0, %mm0' >> $TMPS
2376 if test "$_mmxext" = yes ; then
2377 _pref_as_version='2.10.1'
2378 echo 'movntq %mm0, (%eax)' >> $TMPS
2380 if test "$_sse" = yes ; then
2381 _pref_as_version='2.10.1'
2382 echo 'xorps %xmm0, %xmm0' >> $TMPS
2384 #if test "$_sse2" = yes ; then
2385 # _pref_as_version='2.11'
2386 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2388 if test "$_cmov" = yes ; then
2389 _pref_as_version='2.10.1'
2390 echo 'cmovb %eax, %ebx' >> $TMPS
2392 if test "$_ssse3" = yes ; then
2393 _pref_as_version='2.16.92'
2394 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2396 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2398 if test "$as_verc_fail" != yes ; then
2399 echores "ok"
2400 else
2401 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2402 echores "failed"
2403 die "obsolete binutils version"
2406 fi #if x86_32
2409 echocheck "PIC"
2410 pic=no
2411 cat > $TMPC << EOF
2412 int main(void) {
2413 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2414 #error PIC not enabled
2415 #endif
2416 return 0;
2419 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2420 echores $pic
2423 if x86 ; then
2425 echocheck ".align is a power of two"
2426 if test "$_asmalign_pot" = auto ; then
2427 _asmalign_pot=no
2428 inline_asm_check '".align 3"' && _asmalign_pot=yes
2430 if test "$_asmalign_pot" = "yes" ; then
2431 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2432 else
2433 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2435 echores $_asmalign_pot
2438 echocheck "ebx availability"
2439 ebx_available=no
2440 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2441 cat > $TMPC << EOF
2442 int main(void) {
2443 int x;
2444 __asm__ volatile(
2445 "xor %0, %0"
2446 :"=b"(x)
2447 // just adding ebx to clobber list seems unreliable with some
2448 // compilers, e.g. Haiku's gcc 2.95
2450 // and the above check does not work for OSX 64 bit...
2451 __asm__ volatile("":::"%ebx");
2452 return 0;
2455 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2456 echores $ebx_available
2459 echocheck "yasm"
2460 if test -z "$YASMFLAGS" ; then
2461 if darwin ; then
2462 x86_64 && objformat="macho64" || objformat="macho"
2463 elif win32 ; then
2464 objformat="win32"
2465 else
2466 objformat="elf"
2468 # currently tested for Linux x86, x86_64
2469 YASMFLAGS="-f $objformat"
2470 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2471 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2472 case "$objformat" in
2473 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2474 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2475 esac
2476 else
2477 warn_cflags=yes
2480 echo "pabsw xmm0, xmm0" > $TMPS
2481 yasm_check || _yasm=""
2482 if test $_yasm ; then
2483 def_yasm='#define HAVE_YASM 1'
2484 have_yasm="yes"
2485 echores "$_yasm"
2486 else
2487 def_yasm='#define HAVE_YASM 0'
2488 have_yasm="no"
2489 echores "no"
2492 echocheck "bswap"
2493 def_bswap='#define HAVE_BSWAP 0'
2494 echo 'bswap %eax' > $TMPS
2495 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2496 echores "$bswap"
2497 fi #if x86
2500 #FIXME: This should happen before the check for CFLAGS..
2501 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2502 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2504 # check if AltiVec is supported by the compiler, and how to enable it
2505 echocheck "GCC AltiVec flags"
2506 if $(cflag_check -maltivec -mabi=altivec) ; then
2507 _altivec_gcc_flags="-maltivec -mabi=altivec"
2508 # check if <altivec.h> should be included
2509 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2510 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2511 inc_altivec_h='#include <altivec.h>'
2512 else
2513 if $(cflag_check -faltivec) ; then
2514 _altivec_gcc_flags="-faltivec"
2515 else
2516 _altivec=no
2517 _altivec_gcc_flags="none, AltiVec disabled"
2521 echores "$_altivec_gcc_flags"
2523 # check if the compiler supports braces for vector declarations
2524 cat > $TMPC << EOF
2525 $inc_altivec_h
2526 int main(void) { (vector int) {1}; return 0; }
2528 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2530 # Disable runtime cpudetection if we cannot generate AltiVec code or
2531 # AltiVec is disabled by the user.
2532 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2533 && _runtime_cpudetection=no
2535 # Show that we are optimizing for AltiVec (if enabled and supported).
2536 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2537 && _optimizing="$_optimizing altivec"
2539 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2540 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2543 if ppc ; then
2544 def_xform_asm='#define HAVE_XFORM_ASM 0'
2545 xform_asm=no
2546 echocheck "XFORM ASM support"
2547 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2548 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2549 echores "$xform_asm"
2552 if arm ; then
2553 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2554 if test $_armv5te = "auto" ; then
2555 _armv5te=no
2556 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2558 echores "$_armv5te"
2560 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2562 echocheck "ARMv6 (SIMD instructions)"
2563 if test $_armv6 = "auto" ; then
2564 _armv6=no
2565 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2567 echores "$_armv6"
2569 echocheck "ARMv6t2 (SIMD instructions)"
2570 if test $_armv6t2 = "auto" ; then
2571 _armv6t2=no
2572 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2574 echores "$_armv6t2"
2576 echocheck "ARM VFP"
2577 if test $_armvfp = "auto" ; then
2578 _armvfp=no
2579 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2581 echores "$_armvfp"
2583 echocheck "ARM NEON"
2584 if test $neon = "auto" ; then
2585 neon=no
2586 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2588 echores "$neon"
2590 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2591 if test $_iwmmxt = "auto" ; then
2592 _iwmmxt=no
2593 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2595 echores "$_iwmmxt"
2598 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2599 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2600 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2601 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2602 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2603 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2604 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2605 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2606 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2607 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2608 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2609 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2610 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2611 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2612 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2613 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2614 test "$neon" = yes && cpuexts="NEON $cpuexts"
2615 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2616 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2617 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2619 # Checking kernel version...
2620 if x86_32 && linux ; then
2621 _k_verc_problem=no
2622 kernel_version=$(uname -r 2>&1)
2623 echocheck "$system_name kernel version"
2624 case "$kernel_version" in
2625 '') kernel_version="?.??"; _k_verc_fail=yes;;
2626 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2627 _k_verc_problem=yes;;
2628 esac
2629 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2630 _k_verc_fail=yes
2632 if test "$_k_verc_fail" ; then
2633 echores "$kernel_version, fail"
2634 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2635 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2636 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2637 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2638 echo "2.2.x you must upgrade it to get SSE support!"
2639 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2640 else
2641 echores "$kernel_version, ok"
2645 ######################
2646 # MAIN TESTS GO HERE #
2647 ######################
2650 echocheck "-lposix"
2651 if cflag_check -lposix ; then
2652 extra_ldflags="$extra_ldflags -lposix"
2653 echores "yes"
2654 else
2655 echores "no"
2658 echocheck "-lm"
2659 if cflag_check -lm ; then
2660 _ld_lm="-lm"
2661 echores "yes"
2662 else
2663 _ld_lm=""
2664 echores "no"
2668 echocheck "langinfo"
2669 if test "$_langinfo" = auto ; then
2670 _langinfo=no
2671 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2673 if test "$_langinfo" = yes ; then
2674 def_langinfo='#define HAVE_LANGINFO 1'
2675 else
2676 def_langinfo='#undef HAVE_LANGINFO'
2678 echores "$_langinfo"
2681 echocheck "translation support"
2682 if test "$_translation" = yes; then
2683 def_translation="#define CONFIG_TRANSLATION 1"
2684 else
2685 def_translation="#undef CONFIG_TRANSLATION"
2687 echores "$_translation"
2689 echocheck "language"
2690 # Set preferred languages, "all" uses English as main language.
2691 test -z "$language" && language=$LINGUAS
2692 test -z "$language_doc" && language_doc=$language
2693 test -z "$language_man" && language_man=$language
2694 test -z "$language_msg" && language_msg=$language
2695 test -z "$language_msg" && language_msg="all"
2696 language_doc=$(echo $language_doc | tr , " ")
2697 language_man=$(echo $language_man | tr , " ")
2698 language_msg=$(echo $language_msg | tr , " ")
2700 test "$language_doc" = "all" && language_doc=$doc_lang_all
2701 test "$language_man" = "all" && language_man=$man_lang_all
2702 test "$language_msg" = "all" && language_msg=$msg_lang_all
2704 if test "$_translation" != yes ; then
2705 language_msg=""
2708 # Prune non-existing translations from language lists.
2709 # Set message translation to the first available language.
2710 # Fall back on English.
2711 for lang in $language_doc ; do
2712 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2713 done
2714 language_doc=$tmp_language_doc
2715 test -z "$language_doc" && language_doc=en
2717 for lang in $language_man ; do
2718 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2719 done
2720 language_man=$tmp_language_man
2721 test -z "$language_man" && language_man=en
2723 for lang in $language_msg ; do
2724 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2725 done
2726 language_msg=$tmp_language_msg
2728 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2731 echocheck "enable sighandler"
2732 if test "$_sighandler" = yes ; then
2733 def_sighandler='#define CONFIG_SIGHANDLER 1'
2734 else
2735 def_sighandler='#undef CONFIG_SIGHANDLER'
2737 echores "$_sighandler"
2739 echocheck "runtime cpudetection"
2740 if test "$_runtime_cpudetection" = yes ; then
2741 _optimizing="Runtime CPU-Detection enabled"
2742 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2743 else
2744 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2746 echores "$_runtime_cpudetection"
2749 echocheck "restrict keyword"
2750 for restrict_keyword in restrict __restrict __restrict__ ; do
2751 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2752 if cc_check; then
2753 def_restrict_keyword=$restrict_keyword
2754 break;
2756 done
2757 if [ -n "$def_restrict_keyword" ]; then
2758 echores "$def_restrict_keyword"
2759 else
2760 echores "none"
2762 # Avoid infinite recursion loop ("#define restrict restrict")
2763 if [ "$def_restrict_keyword" != "restrict" ]; then
2764 def_restrict_keyword="#define restrict $def_restrict_keyword"
2765 else
2766 def_restrict_keyword=""
2770 echocheck "__builtin_expect"
2771 # GCC branch prediction hint
2772 cat > $TMPC << EOF
2773 static int foo(int a) {
2774 a = __builtin_expect(a, 10);
2775 return a == 10 ? 0 : 1;
2777 int main(void) { return foo(10) && foo(0); }
2779 _builtin_expect=no
2780 cc_check && _builtin_expect=yes
2781 if test "$_builtin_expect" = yes ; then
2782 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2783 else
2784 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2786 echores "$_builtin_expect"
2789 echocheck "kstat"
2790 _kstat=no
2791 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2792 if test "$_kstat" = yes ; then
2793 def_kstat="#define HAVE_LIBKSTAT 1"
2794 extra_ldflags="$extra_ldflags -lkstat"
2795 else
2796 def_kstat="#undef HAVE_LIBKSTAT"
2798 echores "$_kstat"
2801 echocheck "posix4"
2802 # required for nanosleep on some systems
2803 _posix4=no
2804 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2805 if test "$_posix4" = yes ; then
2806 extra_ldflags="$extra_ldflags -lposix4"
2808 echores "$_posix4"
2810 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2811 echocheck $func
2812 eval _$func=no
2813 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2814 if eval test "x\$_$func" = "xyes"; then
2815 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2816 echores yes
2817 else
2818 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2819 echores no
2821 done
2824 echocheck "mkstemp"
2825 _mkstemp=no
2826 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp=yes
2827 if test "$_mkstemp" = yes ; then
2828 def_mkstemp='#define HAVE_MKSTEMP 1'
2829 else
2830 def_mkstemp='#define HAVE_MKSTEMP 0'
2832 echores "$_mkstemp"
2835 echocheck "nanosleep"
2836 _nanosleep=no
2837 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2838 if test "$_nanosleep" = yes ; then
2839 def_nanosleep='#define HAVE_NANOSLEEP 1'
2840 else
2841 def_nanosleep='#undef HAVE_NANOSLEEP'
2843 echores "$_nanosleep"
2846 echocheck "socklib"
2847 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2848 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2849 cat > $TMPC << EOF
2850 #include <netdb.h>
2851 #include <sys/socket.h>
2852 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2854 _socklib=no
2855 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2856 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2857 done
2858 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2859 if test $_winsock2_h = auto ; then
2860 _winsock2_h=no
2861 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2863 test "$_ld_sock" && res_comment="using $_ld_sock"
2864 echores "$_socklib"
2867 if test $_winsock2_h = yes ; then
2868 _ld_sock="-lws2_32"
2869 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2870 else
2871 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2875 echocheck "arpa/inet.h"
2876 arpa_inet_h=no
2877 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2878 header_check arpa/inet.h && arpa_inet_h=yes &&
2879 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2880 echores "$arpa_inet_h"
2883 echocheck "inet_pton()"
2884 def_inet_pton='#define HAVE_INET_PTON 0'
2885 inet_pton=no
2886 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2887 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
2888 done
2889 if test $inet_pton = yes ; then
2890 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2891 def_inet_pton='#define HAVE_INET_PTON 1'
2893 echores "$inet_pton"
2896 echocheck "inet_aton()"
2897 def_inet_aton='#define HAVE_INET_ATON 0'
2898 inet_aton=no
2899 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2900 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
2901 done
2902 if test $inet_aton = yes ; then
2903 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2904 def_inet_aton='#define HAVE_INET_ATON 1'
2906 echores "$inet_aton"
2909 echocheck "socklen_t"
2910 _socklen_t=no
2911 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2912 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
2913 done
2914 if test "$_socklen_t" = yes ; then
2915 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2916 else
2917 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2919 echores "$_socklen_t"
2922 echocheck "closesocket()"
2923 _closesocket=no
2924 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2925 if test "$_closesocket" = yes ; then
2926 def_closesocket='#define HAVE_CLOSESOCKET 1'
2927 else
2928 def_closesocket='#define HAVE_CLOSESOCKET 0'
2930 echores "$_closesocket"
2933 echocheck "networking"
2934 test $_winsock2_h = no && test $inet_pton = no &&
2935 test $inet_aton = no && networking=no
2936 if test "$networking" = yes ; then
2937 def_network='#define CONFIG_NETWORK 1'
2938 def_networking='#define CONFIG_NETWORKING 1'
2939 extra_ldflags="$extra_ldflags $_ld_sock"
2940 inputmodules="networking $inputmodules"
2941 else
2942 noinputmodules="networking $noinputmodules"
2943 def_network='#define CONFIG_NETWORK 0'
2944 def_networking='#undef CONFIG_NETWORKING'
2946 echores "$networking"
2949 echocheck "inet6"
2950 if test "$_inet6" = auto ; then
2951 cat > $TMPC << EOF
2952 #include <sys/types.h>
2953 #if !defined(_WIN32)
2954 #include <sys/socket.h>
2955 #include <netinet/in.h>
2956 #else
2957 #include <ws2tcpip.h>
2958 #endif
2959 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2961 _inet6=no
2962 if cc_check $_ld_sock ; then
2963 _inet6=yes
2966 if test "$_inet6" = yes ; then
2967 def_inet6='#define HAVE_AF_INET6 1'
2968 else
2969 def_inet6='#undef HAVE_AF_INET6'
2971 echores "$_inet6"
2974 echocheck "gethostbyname2"
2975 if test "$_gethostbyname2" = auto ; then
2976 cat > $TMPC << EOF
2977 #include <sys/types.h>
2978 #include <sys/socket.h>
2979 #include <netdb.h>
2980 int main(void) { gethostbyname2("", AF_INET); return 0; }
2982 _gethostbyname2=no
2983 if cc_check ; then
2984 _gethostbyname2=yes
2987 if test "$_gethostbyname2" = yes ; then
2988 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
2989 else
2990 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
2992 echores "$_gethostbyname2"
2995 echocheck "inttypes.h (required)"
2996 _inttypes=no
2997 header_check inttypes.h && _inttypes=yes
2998 echores "$_inttypes"
3000 if test "$_inttypes" = no ; then
3001 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3002 header_check sys/bitypes.h && _inttypes=yes
3003 if test "$_inttypes" = yes ; then
3004 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."
3005 else
3006 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3011 echocheck "malloc.h"
3012 _malloc=no
3013 header_check malloc.h && _malloc=yes
3014 if test "$_malloc" = yes ; then
3015 def_malloc_h='#define HAVE_MALLOC_H 1'
3016 else
3017 def_malloc_h='#define HAVE_MALLOC_H 0'
3019 echores "$_malloc"
3022 echocheck "memalign()"
3023 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3024 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3025 _memalign=no
3026 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3027 if test "$_memalign" = yes ; then
3028 def_memalign='#define HAVE_MEMALIGN 1'
3029 else
3030 def_memalign='#define HAVE_MEMALIGN 0'
3031 def_map_memalign='#define memalign(a, b) malloc(b)'
3032 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3034 echores "$_memalign"
3037 echocheck "posix_memalign()"
3038 posix_memalign=no
3039 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3040 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3041 posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3042 echores "$posix_memalign"
3045 echocheck "alloca.h"
3046 _alloca=no
3047 statement_check alloca.h 'alloca(0)' && _alloca=yes
3048 if cc_check ; then
3049 def_alloca_h='#define HAVE_ALLOCA_H 1'
3050 else
3051 def_alloca_h='#undef HAVE_ALLOCA_H'
3053 echores "$_alloca"
3056 echocheck "fastmemcpy"
3057 if test "$_fastmemcpy" = yes ; then
3058 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3059 else
3060 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3062 echores "$_fastmemcpy"
3065 echocheck "mman.h"
3066 _mman=no
3067 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3068 if test "$_mman" = yes ; then
3069 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3070 else
3071 def_mman_h='#undef HAVE_SYS_MMAN_H'
3072 os2 && need_mmap=yes
3074 echores "$_mman"
3076 _mman_has_map_failed=no
3077 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3078 if test "$_mman_has_map_failed" = yes ; then
3079 def_mman_has_map_failed=''
3080 else
3081 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3084 echocheck "dynamic loader"
3085 _dl=no
3086 for _ld_tmp in "" "-ldl"; do
3087 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3088 done
3089 if test "$_dl" = yes ; then
3090 def_dl='#define HAVE_LIBDL 1'
3091 else
3092 def_dl='#undef HAVE_LIBDL'
3094 echores "$_dl"
3097 def_threads='#define HAVE_THREADS 0'
3099 echocheck "pthread"
3100 if linux ; then
3101 THREAD_CFLAGS=-D_REENTRANT
3102 elif freebsd || netbsd || openbsd || bsdos ; then
3103 THREAD_CFLAGS=-D_THREAD_SAFE
3105 if test "$_pthreads" = auto ; then
3106 cat > $TMPC << EOF
3107 #include <pthread.h>
3108 static void *func(void *arg) { return arg; }
3109 int main(void) {
3110 pthread_t tid;
3111 #ifdef PTW32_STATIC_LIB
3112 pthread_win32_process_attach_np();
3113 pthread_win32_thread_attach_np();
3114 #endif
3115 return pthread_create (&tid, 0, func, 0) != 0;
3118 _pthreads=no
3119 if ! hpux ; then
3120 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3121 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3122 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3123 done
3124 if test "$_pthreads" = no && mingw32 ; then
3125 _ld_tmp="-lpthreadGC2 -lws2_32"
3126 cc_check $_ld_tmp -DPTW32_STATIC_LIB && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && CFLAGS="$CFLAGS -DPTW32_STATIC_LIB"
3130 if test "$_pthreads" = yes ; then
3131 test $_ld_pthread && res_comment="using $_ld_pthread"
3132 def_pthreads='#define HAVE_PTHREADS 1'
3133 def_threads='#define HAVE_THREADS 1'
3134 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3135 else
3136 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3137 def_pthreads='#undef HAVE_PTHREADS'
3138 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3139 mingw32 || _win32dll=no
3141 echores "$_pthreads"
3143 if cygwin ; then
3144 if test "$_pthreads" = yes ; then
3145 def_pthread_cache="#define PTHREAD_CACHE 1"
3146 else
3147 _stream_cache=no
3148 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3152 echocheck "w32threads"
3153 if test "$_pthreads" = yes ; then
3154 res_comment="using pthread instead"
3155 _w32threads=no
3157 if test "$_w32threads" = auto ; then
3158 _w32threads=no
3159 mingw32 && _w32threads=yes
3161 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3162 echores "$_w32threads"
3164 echocheck "rpath"
3165 if test "$_rpath" = yes ; then
3166 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3167 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3168 done
3169 extra_ldflags=$tmp
3171 echores "$_rpath"
3173 echocheck "iconv"
3174 if test "$_iconv" = auto ; then
3175 cat > $TMPC << EOF
3176 #include <stdio.h>
3177 #include <unistd.h>
3178 #include <iconv.h>
3179 #define INBUFSIZE 1024
3180 #define OUTBUFSIZE 4096
3182 char inbuffer[INBUFSIZE];
3183 char outbuffer[OUTBUFSIZE];
3185 int main(void) {
3186 size_t numread;
3187 iconv_t icdsc;
3188 char *tocode="UTF-8";
3189 char *fromcode="cp1250";
3190 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3191 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3192 char *iptr=inbuffer;
3193 char *optr=outbuffer;
3194 size_t inleft=numread;
3195 size_t outleft=OUTBUFSIZE;
3196 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3197 != (size_t)(-1)) {
3198 write(1, outbuffer, OUTBUFSIZE - outleft);
3201 if (iconv_close(icdsc) == -1)
3204 return 0;
3207 _iconv=no
3208 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3209 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3210 _iconv=yes && break
3211 done
3212 if test "$_iconv" != yes ; then
3213 die "Unable to find iconv which should be part of standard compilation environment. Aborting. If you really mean to compile without iconv support use --disable-iconv."
3216 if test "$_iconv" = yes ; then
3217 def_iconv='#define CONFIG_ICONV 1'
3218 else
3219 def_iconv='#undef CONFIG_ICONV'
3221 echores "$_iconv"
3224 echocheck "soundcard.h"
3225 _soundcard_h=no
3226 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3227 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3228 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3229 header_check $_soundcard_header && _soundcard_h=yes &&
3230 res_comment="$_soundcard_header" && break
3231 done
3233 if test "$_soundcard_h" = yes ; then
3234 if test $_soundcard_header = "sys/soundcard.h"; then
3235 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3236 else
3237 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3240 echores "$_soundcard_h"
3243 echocheck "sys/videoio.h"
3244 sys_videoio_h=no
3245 def_sys_videoio_h='#undef HAVE_SYS_VIDEOIO_H'
3246 header_check sys/videoio.h && sys_videoio_h=yes &&
3247 def_sys_videoio_h='#define HAVE_SYS_VIDEOIO_H 1'
3248 echores "$sys_videoio_h"
3251 echocheck "sys/dvdio.h"
3252 _dvdio=no
3253 # FreeBSD 8.1 has broken dvdio.h
3254 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3255 if test "$_dvdio" = yes ; then
3256 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3257 else
3258 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3260 echores "$_dvdio"
3263 echocheck "sys/cdio.h"
3264 _cdio=no
3265 # at least OpenSolaris has a broken cdio.h
3266 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3267 if test "$_cdio" = yes ; then
3268 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3269 else
3270 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3272 echores "$_cdio"
3275 echocheck "linux/cdrom.h"
3276 _cdrom=no
3277 header_check linux/cdrom.h && _cdrom=yes
3278 if test "$_cdrom" = yes ; then
3279 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3280 else
3281 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3283 echores "$_cdrom"
3286 echocheck "dvd.h"
3287 _dvd=no
3288 header_check dvd.h && _dvd=yes
3289 if test "$_dvd" = yes ; then
3290 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3291 else
3292 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3294 echores "$_dvd"
3297 if bsdos; then
3298 echocheck "BSDI dvd.h"
3299 _bsdi_dvd=no
3300 header_check dvd.h && _bsdi_dvd=yes
3301 if test "$_bsdi_dvd" = yes ; then
3302 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3303 else
3304 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3306 echores "$_bsdi_dvd"
3307 fi #if bsdos
3310 if hpux; then
3311 # also used by AIX, but AIX does not support VCD and/or libdvdread
3312 echocheck "HP-UX SCSI header"
3313 _hpux_scsi_h=no
3314 header_check sys/scsi.h && _hpux_scsi_h=yes
3315 if test "$_hpux_scsi_h" = yes ; then
3316 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3317 else
3318 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3320 echores "$_hpux_scsi_h"
3321 fi #if hpux
3324 if sunos; then
3325 echocheck "userspace SCSI headers (Solaris)"
3326 _sol_scsi_h=no
3327 header_check sys/scsi/scsi_types.h &&
3328 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3329 _sol_scsi_h=yes
3330 if test "$_sol_scsi_h" = yes ; then
3331 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3332 else
3333 def_sol_scsi_h='#undef SOLARIS_USCSI'
3335 echores "$_sol_scsi_h"
3336 fi #if sunos
3339 echocheck "termcap"
3340 if test "$_termcap" = auto ; then
3341 _termcap=no
3342 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3343 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3344 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3345 done
3347 if test "$_termcap" = yes ; then
3348 def_termcap='#define HAVE_TERMCAP 1'
3349 test $_ld_tmp && res_comment="using $_ld_tmp"
3350 else
3351 def_termcap='#undef HAVE_TERMCAP'
3353 echores "$_termcap"
3356 echocheck "termios"
3357 def_termios='#undef HAVE_TERMIOS'
3358 def_termios_h='#undef HAVE_TERMIOS_H'
3359 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3360 if test "$_termios" = auto ; then
3361 _termios=no
3362 for _termios_header in "termios.h" "sys/termios.h"; do
3363 header_check $_termios_header && _termios=yes &&
3364 res_comment="using $_termios_header" && break
3365 done
3368 if test "$_termios" = yes ; then
3369 def_termios='#define HAVE_TERMIOS 1'
3370 if test "$_termios_header" = "termios.h" ; then
3371 def_termios_h='#define HAVE_TERMIOS_H 1'
3372 else
3373 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3376 echores "$_termios"
3379 echocheck "shm"
3380 if test "$_shm" = auto ; then
3381 _shm=no
3382 statement_check sys/shm.h 'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm=yes
3384 if test "$_shm" = yes ; then
3385 def_shm='#define HAVE_SHM 1'
3386 else
3387 def_shm='#undef HAVE_SHM'
3389 echores "$_shm"
3392 echocheck "strsep()"
3393 _strsep=no
3394 statement_check string.h 'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep=yes
3395 if test "$_strsep" = yes ; then
3396 def_strsep='#define HAVE_STRSEP 1'
3397 need_strsep=no
3398 else
3399 def_strsep='#undef HAVE_STRSEP'
3400 need_strsep=yes
3402 echores "$_strsep"
3405 echocheck "vsscanf()"
3406 cat > $TMPC << EOF
3407 #define _ISOC99_SOURCE
3408 #include <stdarg.h>
3409 #include <stdio.h>
3410 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3412 _vsscanf=no
3413 cc_check && _vsscanf=yes
3414 if test "$_vsscanf" = yes ; then
3415 def_vsscanf='#define HAVE_VSSCANF 1'
3416 need_vsscanf=no
3417 else
3418 def_vsscanf='#undef HAVE_VSSCANF'
3419 need_vsscanf=yes
3421 echores "$_vsscanf"
3424 echocheck "swab()"
3425 _swab=no
3426 define_statement_check "_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' ||
3427 statement_check "string.h" 'int a, b; swab(&a, &b, 0)' && _swab=yes
3428 if test "$_swab" = yes ; then
3429 def_swab='#define HAVE_SWAB 1'
3430 need_swab=no
3431 else
3432 def_swab='#undef HAVE_SWAB'
3433 need_swab=yes
3435 echores "$_swab"
3437 echocheck "POSIX select()"
3438 cat > $TMPC << EOF
3439 #include <stdio.h>
3440 #include <stdlib.h>
3441 #include <sys/types.h>
3442 #include <string.h>
3443 #include <sys/time.h>
3444 #include <unistd.h>
3445 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3447 _posix_select=no
3448 def_posix_select='#undef HAVE_POSIX_SELECT'
3449 #select() of kLIBC (OS/2) supports socket only
3450 ! os2 && cc_check && _posix_select=yes &&
3451 def_posix_select='#define HAVE_POSIX_SELECT 1'
3452 echores "$_posix_select"
3455 echocheck "audio select()"
3456 if test "$_select" = no ; then
3457 def_select='#undef HAVE_AUDIO_SELECT'
3458 elif test "$_select" = yes ; then
3459 def_select='#define HAVE_AUDIO_SELECT 1'
3461 echores "$_select"
3464 echocheck "gettimeofday()"
3465 _gettimeofday=no
3466 statement_check sys/time.h 'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday=yes
3467 if test "$_gettimeofday" = yes ; then
3468 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3469 need_gettimeofday=no
3470 else
3471 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3472 need_gettimeofday=yes
3474 echores "$_gettimeofday"
3477 echocheck "glob()"
3478 _glob=no
3479 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3480 need_glob=no
3481 if test "$_glob" = yes ; then
3482 def_glob='#define HAVE_GLOB 1'
3483 else
3484 def_glob='#undef HAVE_GLOB'
3485 # HACK! need_glob currently enables compilation of a
3486 # win32-specific glob()-replacement.
3487 # Other OS neither need it nor can they use it (mf:// is disabled for them).
3488 win32 && need_glob=yes
3490 echores "$_glob"
3493 echocheck "setenv()"
3494 _setenv=no
3495 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3496 if test "$_setenv" = yes ; then
3497 def_setenv='#define HAVE_SETENV 1'
3498 need_setenv=no
3499 else
3500 def_setenv='#undef HAVE_SETENV'
3501 need_setenv=yes
3503 echores "$_setenv"
3506 echocheck "setmode()"
3507 _setmode=no
3508 def_setmode='#define HAVE_SETMODE 0'
3509 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3510 echores "$_setmode"
3513 if sunos; then
3514 echocheck "sysi86()"
3515 _sysi86=no
3516 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3517 if test "$_sysi86" = yes ; then
3518 def_sysi86='#define HAVE_SYSI86 1'
3519 statement_check sys/sysi86.h 'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3520 else
3521 def_sysi86='#undef HAVE_SYSI86'
3523 echores "$_sysi86"
3524 fi #if sunos
3527 echocheck "sys/sysinfo.h"
3528 _sys_sysinfo=no
3529 statement_check sys/sysinfo.h 'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo=yes
3530 if test "$_sys_sysinfo" = yes ; then
3531 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3532 else
3533 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3535 echores "$_sys_sysinfo"
3538 if darwin; then
3540 echocheck "Mac OS X Finder Support"
3541 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3542 if test "$_macosx_finder" = yes ; then
3543 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3544 extra_ldflags="$extra_ldflags -framework Carbon"
3546 echores "$_macosx_finder"
3548 echocheck "Mac OS X Bundle file locations"
3549 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3550 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3551 if test "$_macosx_bundle" = yes ; then
3552 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3553 extra_ldflags="$extra_ldflags -framework Carbon"
3555 echores "$_macosx_bundle"
3557 echocheck "Apple Remote"
3558 if test "$_apple_remote" = auto ; then
3559 _apple_remote=no
3560 cat > $TMPC <<EOF
3561 #include <stdio.h>
3562 #include <IOKit/IOCFPlugIn.h>
3563 int main(void) {
3564 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3565 CFMutableDictionaryRef hidMatchDictionary;
3566 IOReturn ioReturnValue;
3568 // Set up a matching dictionary to search the I/O Registry by class.
3569 // name for all HID class devices
3570 hidMatchDictionary = IOServiceMatching("AppleIRController");
3572 // Now search I/O Registry for matching devices.
3573 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3574 hidMatchDictionary, &hidObjectIterator);
3576 // If search is unsuccessful, return nonzero.
3577 if (ioReturnValue != kIOReturnSuccess ||
3578 !IOIteratorIsValid(hidObjectIterator)) {
3579 return 1;
3581 return 0;
3584 cc_check -framework IOKit && _apple_remote=yes
3586 if test "$_apple_remote" = yes ; then
3587 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3588 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3589 else
3590 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3592 echores "$_apple_remote"
3594 fi #if darwin
3596 if linux; then
3598 echocheck "Apple IR"
3599 if test "$_apple_ir" = auto ; then
3600 _apple_ir=no
3601 statement_check linux/input.h 'struct input_event ev; struct input_id id' && _apple_ir=yes
3603 if test "$_apple_ir" = yes ; then
3604 def_apple_ir='#define CONFIG_APPLE_IR 1'
3605 else
3606 def_apple_ir='#undef CONFIG_APPLE_IR'
3608 echores "$_apple_ir"
3609 fi #if linux
3611 echocheck "pkg-config"
3612 _pkg_config=pkg-config
3613 if $($_pkg_config --version > /dev/null 2>&1); then
3614 if test "$_ld_static"; then
3615 _pkg_config="$_pkg_config --static"
3617 echores "yes"
3618 else
3619 _pkg_config=false
3620 echores "no"
3624 echocheck "Samba support (libsmbclient)"
3625 if test "$_smb" = yes; then
3626 extra_ldflags="$extra_ldflags -lsmbclient"
3628 if test "$_smb" = auto; then
3629 _smb=no
3630 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3631 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3632 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3633 done
3636 if test "$_smb" = yes; then
3637 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3638 inputmodules="smb $inputmodules"
3639 else
3640 def_smb="#undef CONFIG_LIBSMBCLIENT"
3641 noinputmodules="smb $noinputmodules"
3643 echores "$_smb"
3646 #########
3647 # VIDEO #
3648 #########
3651 echocheck "tdfxfb"
3652 if test "$_tdfxfb" = yes ; then
3653 def_tdfxfb='#define CONFIG_TDFXFB 1'
3654 vomodules="tdfxfb $vomodules"
3655 else
3656 def_tdfxfb='#undef CONFIG_TDFXFB'
3657 novomodules="tdfxfb $novomodules"
3659 echores "$_tdfxfb"
3661 echocheck "s3fb"
3662 if test "$_s3fb" = yes ; then
3663 def_s3fb='#define CONFIG_S3FB 1'
3664 vomodules="s3fb $vomodules"
3665 else
3666 def_s3fb='#undef CONFIG_S3FB'
3667 novomodules="s3fb $novomodules"
3669 echores "$_s3fb"
3671 echocheck "wii"
3672 if test "$_wii" = yes ; then
3673 def_wii='#define CONFIG_WII 1'
3674 vomodules="wii $vomodules"
3675 else
3676 def_wii='#undef CONFIG_WII'
3677 novomodules="wii $novomodules"
3679 echores "$_wii"
3681 echocheck "tdfxvid"
3682 if test "$_tdfxvid" = yes ; then
3683 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3684 vomodules="tdfx_vid $vomodules"
3685 else
3686 def_tdfxvid='#undef CONFIG_TDFX_VID'
3687 novomodules="tdfx_vid $novomodules"
3689 echores "$_tdfxvid"
3691 echocheck "xvr100"
3692 if test "$_xvr100" = auto ; then
3693 cat > $TMPC << EOF
3694 #include <unistd.h>
3695 #include <sys/fbio.h>
3696 #include <sys/visual_io.h>
3697 int main(void) {
3698 struct vis_identifier ident;
3699 struct fbgattr attr;
3700 ioctl(0, VIS_GETIDENTIFIER, &ident);
3701 ioctl(0, FBIOGATTR, &attr);
3702 return 0;
3705 _xvr100=no
3706 cc_check && _xvr100=yes
3708 if test "$_xvr100" = yes ; then
3709 def_xvr100='#define CONFIG_XVR100 1'
3710 vomodules="xvr100 $vomodules"
3711 else
3712 def_tdfxvid='#undef CONFIG_XVR100'
3713 novomodules="xvr100 $novomodules"
3715 echores "$_xvr100"
3717 echocheck "tga"
3718 if test "$_tga" = yes ; then
3719 def_tga='#define CONFIG_TGA 1'
3720 vomodules="tga $vomodules"
3721 else
3722 def_tga='#undef CONFIG_TGA'
3723 novomodules="tga $novomodules"
3725 echores "$_tga"
3728 echocheck "md5sum support"
3729 if test "$_md5sum" = yes; then
3730 def_md5sum="#define CONFIG_MD5SUM 1"
3731 vomodules="md5sum $vomodules"
3732 else
3733 def_md5sum="#undef CONFIG_MD5SUM"
3734 novomodules="md5sum $novomodules"
3736 echores "$_md5sum"
3739 echocheck "yuv4mpeg support"
3740 if test "$_yuv4mpeg" = yes; then
3741 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3742 vomodules="yuv4mpeg $vomodules"
3743 else
3744 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3745 novomodules="yuv4mpeg $novomodules"
3747 echores "$_yuv4mpeg"
3750 echocheck "bl"
3751 if test "$_bl" = yes ; then
3752 def_bl='#define CONFIG_BL 1'
3753 vomodules="bl $vomodules"
3754 else
3755 def_bl='#undef CONFIG_BL'
3756 novomodules="bl $novomodules"
3758 echores "$_bl"
3761 echocheck "DirectFB"
3762 if test "$_directfb" = auto ; then
3763 _directfb=no
3764 cat > $TMPC << EOF
3765 #include <directfb.h>
3766 #include <directfb_version.h>
3767 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3768 #error "DirectFB version too old."
3769 #endif
3770 int main(void) { DirectFBInit(0, 0); return 0; }
3772 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3773 cc_check $_inc_tmp -ldirectfb &&
3774 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3775 done
3777 if test "$_directfb" = yes ; then
3778 def_directfb='#define CONFIG_DIRECTFB 1'
3779 vomodules="directfb dfbmga $vomodules"
3780 libs_mplayer="$libs_mplayer -ldirectfb"
3781 else
3782 def_directfb='#undef CONFIG_DIRECTFB'
3783 novomodules="directfb dfbmga $novomodules"
3785 echores "$_directfb"
3788 echocheck "X11 headers presence"
3789 _x11_headers="no"
3790 res_comment="check if the dev(el) packages are installed"
3791 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3792 if test -f "$I/X11/Xlib.h" ; then
3793 _x11_headers="yes"
3794 res_comment=""
3795 break
3797 done
3798 if test $_cross_compile = no; then
3799 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3800 /usr/include/X11R6 /usr/openwin/include ; do
3801 if test -f "$I/X11/Xlib.h" ; then
3802 extra_cflags="$extra_cflags -I$I"
3803 _x11_headers="yes"
3804 res_comment="using $I"
3805 break
3807 done
3809 echores "$_x11_headers"
3812 echocheck "X11"
3813 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3814 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3815 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3816 -L/usr/lib ; do
3817 if netbsd; then
3818 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3819 else
3820 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3822 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3823 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3824 done
3826 if test "$_x11" = yes ; then
3827 def_x11='#define CONFIG_X11 1'
3828 vomodules="x11 xover $vomodules"
3829 else
3830 _x11=no
3831 def_x11='#undef CONFIG_X11'
3832 novomodules="x11 $novomodules"
3833 res_comment="check if the dev(el) packages are installed"
3835 echores "$_x11"
3837 echocheck "Xss screensaver extensions"
3838 if test "$_xss" = auto ; then
3839 _xss=no
3840 statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes
3842 if test "$_xss" = yes ; then
3843 def_xss='#define CONFIG_XSS 1'
3844 libs_mplayer="$libs_mplayer -lXss"
3845 else
3846 def_xss='#undef CONFIG_XSS'
3848 echores "$_xss"
3850 echocheck "DPMS"
3851 _xdpms3=no
3852 _xdpms4=no
3853 if test "$_x11" = yes ; then
3854 cat > $TMPC <<EOF
3855 #include <X11/Xmd.h>
3856 #include <X11/Xlib.h>
3857 #include <X11/Xutil.h>
3858 #include <X11/Xatom.h>
3859 #include <X11/extensions/dpms.h>
3860 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3862 cc_check -lXdpms && _xdpms3=yes
3863 statement_check_broken X11/Xlib.h X11/extensions/dpms.h 'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4=yes
3865 if test "$_xdpms4" = yes ; then
3866 def_xdpms='#define CONFIG_XDPMS 1'
3867 res_comment="using Xdpms 4"
3868 echores "yes"
3869 elif test "$_xdpms3" = yes ; then
3870 def_xdpms='#define CONFIG_XDPMS 1'
3871 libs_mplayer="$libs_mplayer -lXdpms"
3872 res_comment="using Xdpms 3"
3873 echores "yes"
3874 else
3875 def_xdpms='#undef CONFIG_XDPMS'
3876 echores "no"
3880 echocheck "Xv"
3881 if test "$_xv" = auto && test "$_x11" = yes ; then
3882 _xv=no
3883 statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes
3886 if test "$_xv" = yes ; then
3887 def_xv='#define CONFIG_XV 1'
3888 libs_mplayer="$libs_mplayer -lXv"
3889 vomodules="xv $vomodules"
3890 else
3891 def_xv='#undef CONFIG_XV'
3892 novomodules="xv $novomodules"
3894 echores "$_xv"
3897 echocheck "VDPAU"
3898 if test "$_vdpau" = auto && test "$_x11" = yes ; then
3899 _vdpau=no
3900 if test "$_dl" = yes ; then
3901 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
3904 if test "$_vdpau" = yes ; then
3905 def_vdpau='#define CONFIG_VDPAU 1'
3906 libs_mplayer="$libs_mplayer -lvdpau"
3907 vomodules="vdpau $vomodules"
3908 else
3909 def_vdpau='#define CONFIG_VDPAU 0'
3910 novomodules="vdpau $novomodules"
3912 echores "$_vdpau"
3915 echocheck "Xinerama"
3916 if test "$_xinerama" = auto && test "$_x11" = yes ; then
3917 _xinerama=no
3918 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
3921 if test "$_xinerama" = yes ; then
3922 def_xinerama='#define CONFIG_XINERAMA 1'
3923 libs_mplayer="$libs_mplayer -lXinerama"
3924 else
3925 def_xinerama='#undef CONFIG_XINERAMA'
3927 echores "$_xinerama"
3930 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3931 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3932 # named 'X extensions' or something similar.
3933 # This check may be useful for future mplayer versions (to change resolution)
3934 # If you run into problems, remove '-lXxf86vm'.
3935 echocheck "Xxf86vm"
3936 if test "$_vm" = auto && test "$_x11" = yes ; then
3937 _vm=no
3938 statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes
3940 if test "$_vm" = yes ; then
3941 def_vm='#define CONFIG_XF86VM 1'
3942 libs_mplayer="$libs_mplayer -lXxf86vm"
3943 else
3944 def_vm='#undef CONFIG_XF86VM'
3946 echores "$_vm"
3948 # Check for the presence of special keycodes, like audio control buttons
3949 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3950 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3951 # have these new keycodes.
3952 echocheck "XF86keysym"
3953 if test "$_xf86keysym" = auto && test "$_x11" = yes ; then
3954 _xf86keysym=no
3955 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
3957 if test "$_xf86keysym" = yes ; then
3958 def_xf86keysym='#define CONFIG_XF86XK 1'
3959 else
3960 def_xf86keysym='#undef CONFIG_XF86XK'
3962 echores "$_xf86keysym"
3964 echocheck "DGA"
3965 if test "$_dga2" = auto && test "$_x11" = yes ; then
3966 _dga2=no
3967 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2=yes
3969 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
3970 _dga1=no
3971 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
3974 _dga=no
3975 def_dga='#undef CONFIG_DGA'
3976 def_dga1='#undef CONFIG_DGA1'
3977 def_dga2='#undef CONFIG_DGA2'
3978 if test "$_dga1" = yes ; then
3979 _dga=yes
3980 def_dga1='#define CONFIG_DGA1 1'
3981 res_comment="using DGA 1.0"
3982 elif test "$_dga2" = yes ; then
3983 _dga=yes
3984 def_dga2='#define CONFIG_DGA2 1'
3985 res_comment="using DGA 2.0"
3987 if test "$_dga" = yes ; then
3988 def_dga='#define CONFIG_DGA 1'
3989 libs_mplayer="$libs_mplayer -lXxf86dga"
3990 vomodules="dga $vomodules"
3991 else
3992 novomodules="dga $novomodules"
3994 echores "$_dga"
3997 echocheck "3dfx"
3998 if test "$_3dfx" = yes && test "$_dga" = yes ; then
3999 def_3dfx='#define CONFIG_3DFX 1'
4000 vomodules="3dfx $vomodules"
4001 else
4002 _3dfx=no
4003 def_3dfx='#undef CONFIG_3DFX'
4004 novomodules="3dfx $novomodules"
4006 echores "$_3dfx"
4009 echocheck "GGI"
4010 if test "$_ggi" = auto ; then
4011 _ggi=no
4012 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4014 if test "$_ggi" = yes ; then
4015 def_ggi='#define CONFIG_GGI 1'
4016 libs_mplayer="$libs_mplayer -lggi"
4017 vomodules="ggi $vomodules"
4018 else
4019 def_ggi='#undef CONFIG_GGI'
4020 novomodules="ggi $novomodules"
4022 echores "$_ggi"
4024 echocheck "GGI extension: libggiwmh"
4025 if test "$_ggiwmh" = auto ; then
4026 _ggiwmh=no
4027 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4029 # needed to get right output on obscure combination
4030 # like --disable-ggi --enable-ggiwmh
4031 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4032 def_ggiwmh='#define CONFIG_GGIWMH 1'
4033 libs_mplayer="$libs_mplayer -lggiwmh"
4034 else
4035 _ggiwmh=no
4036 def_ggiwmh='#undef CONFIG_GGIWMH'
4038 echores "$_ggiwmh"
4041 echocheck "AA"
4042 if test "$_aa" = auto ; then
4043 cat > $TMPC << EOF
4044 #include <aalib.h>
4045 int main(void) {
4046 aa_context *c;
4047 aa_renderparams *p;
4048 aa_init(0, 0, 0);
4049 c = aa_autoinit(&aa_defparams);
4050 p = aa_getrenderparams();
4051 aa_autoinitkbd(c, 0);
4052 return 0; }
4054 _aa=no
4055 for _ld_tmp in "-laa" ; do
4056 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4057 done
4059 if test "$_aa" = yes ; then
4060 def_aa='#define CONFIG_AA 1'
4061 if cygwin ; then
4062 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4064 vomodules="aa $vomodules"
4065 else
4066 def_aa='#undef CONFIG_AA'
4067 novomodules="aa $novomodules"
4069 echores "$_aa"
4072 echocheck "CACA"
4073 if test "$_caca" = auto ; then
4074 _caca=no
4075 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4076 cat > $TMPC << EOF
4077 #include <caca.h>
4078 #ifdef CACA_API_VERSION_1
4079 #include <caca0.h>
4080 #endif
4081 int main(void) { caca_init(); return 0; }
4083 cc_check $(caca-config --libs) && _caca=yes
4086 if test "$_caca" = yes ; then
4087 def_caca='#define CONFIG_CACA 1'
4088 extra_cflags="$extra_cflags $(caca-config --cflags)"
4089 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4090 vomodules="caca $vomodules"
4091 else
4092 def_caca='#undef CONFIG_CACA'
4093 novomodules="caca $novomodules"
4095 echores "$_caca"
4098 echocheck "SVGAlib"
4099 if test "$_svga" = auto ; then
4100 _svga=no
4101 header_check vga.h -lvga $_ld_lm && _svga=yes
4103 if test "$_svga" = yes ; then
4104 def_svga='#define CONFIG_SVGALIB 1'
4105 libs_mplayer="$libs_mplayer -lvga"
4106 vomodules="svga $vomodules"
4107 else
4108 def_svga='#undef CONFIG_SVGALIB'
4109 novomodules="svga $novomodules"
4111 echores "$_svga"
4114 echocheck "FBDev"
4115 if test "$_fbdev" = auto ; then
4116 _fbdev=no
4117 linux && _fbdev=yes
4119 if test "$_fbdev" = yes ; then
4120 def_fbdev='#define CONFIG_FBDEV 1'
4121 vomodules="fbdev $vomodules"
4122 else
4123 def_fbdev='#undef CONFIG_FBDEV'
4124 novomodules="fbdev $novomodules"
4126 echores "$_fbdev"
4130 echocheck "DVB"
4131 if test "$_dvb" = auto ; then
4132 _dvb=no
4133 cat >$TMPC << EOF
4134 #include <poll.h>
4135 #include <sys/ioctl.h>
4136 #include <stdio.h>
4137 #include <time.h>
4138 #include <unistd.h>
4139 #include <linux/dvb/dmx.h>
4140 #include <linux/dvb/frontend.h>
4141 #include <linux/dvb/video.h>
4142 #include <linux/dvb/audio.h>
4143 int main(void) {return 0;}
4145 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4146 cc_check $_inc_tmp && _dvb=yes &&
4147 extra_cflags="$extra_cflags $_inc_tmp" && break
4148 done
4150 echores "$_dvb"
4151 if test "$_dvb" = yes ; then
4152 _dvbin=yes
4153 inputmodules="dvb $inputmodules"
4154 def_dvb='#define CONFIG_DVB 1'
4155 def_dvbin='#define CONFIG_DVBIN 1'
4156 aomodules="mpegpes(dvb) $aomodules"
4157 vomodules="mpegpes(dvb) $vomodules"
4158 else
4159 _dvbin=no
4160 noinputmodules="dvb $noinputmodules"
4161 def_dvb='#undef CONFIG_DVB'
4162 def_dvbin='#undef CONFIG_DVBIN '
4163 aomodules="mpegpes(file) $aomodules"
4164 vomodules="mpegpes(file) $vomodules"
4168 if darwin; then
4170 echocheck "QuickTime"
4171 if test "$quicktime" = auto ; then
4172 quicktime=no
4173 statement_check QuickTime/QuickTime.h 'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime && quicktime=yes
4175 if test "$quicktime" = yes ; then
4176 extra_ldflags="$extra_ldflags -framework QuickTime"
4177 def_quicktime='#define CONFIG_QUICKTIME 1'
4178 else
4179 def_quicktime='#undef CONFIG_QUICKTIME'
4180 _quartz=no
4182 echores $quicktime
4184 echocheck "Quartz"
4185 if test "$_quartz" = auto ; then
4186 _quartz=no
4187 statement_check Carbon/Carbon.h 'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon && _quartz=yes
4189 if test "$_quartz" = yes ; then
4190 libs_mplayer="$libs_mplayer -framework Carbon"
4191 def_quartz='#define CONFIG_QUARTZ 1'
4192 vomodules="quartz $vomodules"
4193 else
4194 def_quartz='#undef CONFIG_QUARTZ'
4195 novomodules="quartz $novomodules"
4197 echores $_quartz
4199 echocheck "CoreVideo"
4200 if test "$_corevideo" = auto ; then
4201 cat > $TMPC <<EOF
4202 #include <Carbon/Carbon.h>
4203 #include <CoreServices/CoreServices.h>
4204 #include <OpenGL/OpenGL.h>
4205 #include <QuartzCore/CoreVideo.h>
4206 int main(void) { return 0; }
4208 _corevideo=no
4209 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4211 if test "$_corevideo" = yes ; then
4212 vomodules="corevideo $vomodules"
4213 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4214 def_corevideo='#define CONFIG_COREVIDEO 1'
4215 else
4216 novomodules="corevideo $novomodules"
4217 def_corevideo='#undef CONFIG_COREVIDEO'
4219 echores "$_corevideo"
4221 echocheck "Cocoa"
4222 if test "$_gl" = no ; then
4223 # if _gl is not enabled there is no point to add potentially unused linker flags
4224 _cocoa=no
4226 if test "$_cocoa" = auto ; then
4227 cat > $TMPC <<EOF
4228 #include <CoreServices/CoreServices.h>
4229 #include <OpenGL/OpenGL.h>
4230 #include <QuartzCore/CoreVideo.h>
4231 int main(void) { return 0; }
4233 _cocoa=no
4234 cc_check -framework Cocoa -framework QuartzCore -framework OpenGL && _cocoa=yes
4236 if test "$_cocoa" = yes ; then
4237 libs_mplayer="$libs_mplayer -framework Cocoa -framework QuartzCore -framework OpenGL"
4239 echores "$_cocoa"
4241 fi #if darwin
4244 echocheck "PNG support"
4245 if test "$_png" = auto ; then
4246 _png=no
4247 if irix ; then
4248 # Don't check for -lpng on irix since it has its own libpng
4249 # incompatible with the GNU libpng
4250 res_comment="disabled on irix (not GNU libpng)"
4251 else
4252 cat > $TMPC << EOF
4253 #include <stdio.h>
4254 #include <string.h>
4255 #include <png.h>
4256 int main(void) {
4257 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4258 printf("libpng: %s\n", png_libpng_ver);
4259 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4262 cc_check -lpng -lz $_ld_lm && _png=yes
4265 echores "$_png"
4266 if test "$_png" = yes ; then
4267 def_png='#define CONFIG_PNG 1'
4268 extra_ldflags="$extra_ldflags -lpng -lz"
4269 else
4270 def_png='#undef CONFIG_PNG'
4273 echocheck "MNG support"
4274 if test "$_mng" = auto ; then
4275 _mng=no
4276 return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
4278 echores "$_mng"
4279 if test "$_mng" = yes ; then
4280 def_mng='#define CONFIG_MNG 1'
4281 extra_ldflags="$extra_ldflags -lmng -lz"
4282 else
4283 def_mng='#undef CONFIG_MNG'
4286 echocheck "JPEG support"
4287 if test "$_jpeg" = auto ; then
4288 _jpeg=no
4289 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4291 echores "$_jpeg"
4293 if test "$_jpeg" = yes ; then
4294 def_jpeg='#define CONFIG_JPEG 1'
4295 vomodules="jpeg $vomodules"
4296 extra_ldflags="$extra_ldflags -ljpeg"
4297 else
4298 def_jpeg='#undef CONFIG_JPEG'
4299 novomodules="jpeg $novomodules"
4304 echocheck "PNM support"
4305 if test "$_pnm" = yes; then
4306 def_pnm="#define CONFIG_PNM 1"
4307 vomodules="pnm $vomodules"
4308 else
4309 def_pnm="#undef CONFIG_PNM"
4310 novomodules="pnm $novomodules"
4312 echores "$_pnm"
4316 echocheck "GIF support"
4317 # This is to appease people who want to force gif support.
4318 # If it is forced to yes, then we still do checks to determine
4319 # which gif library to use.
4320 if test "$_gif" = yes ; then
4321 _force_gif=yes
4322 _gif=auto
4325 if test "$_gif" = auto ; then
4326 _gif=no
4327 for _ld_gif in "-lungif" "-lgif" ; do
4328 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4329 done
4332 # If no library was found, and the user wants support forced,
4333 # then we force it on with libgif, as this is the safest
4334 # assumption IMHO. (libungif & libregif both create symbolic
4335 # links to libgif. We also assume that no x11 support is needed,
4336 # because if you are forcing this, then you _should_ know what
4337 # you are doing. [ Besides, package maintainers should never
4338 # have compiled x11 deps into libungif in the first place. ] )
4339 # </rant>
4340 # --Joey
4341 if test "$_force_gif" = yes && test "$_gif" = no ; then
4342 _gif=yes
4343 _ld_gif="-lgif"
4346 if test "$_gif" = yes ; then
4347 def_gif='#define CONFIG_GIF 1'
4348 codecmodules="gif $codecmodules"
4349 vomodules="gif89a $vomodules"
4350 res_comment="old version, some encoding functions disabled"
4351 def_gif_4='#undef CONFIG_GIF_4'
4352 extra_ldflags="$extra_ldflags $_ld_gif"
4354 cat > $TMPC << EOF
4355 #include <signal.h>
4356 #include <stdio.h>
4357 #include <stdlib.h>
4358 #include <gif_lib.h>
4359 static void catch(int sig) { exit(1); }
4360 int main(void) {
4361 signal(SIGSEGV, catch); // catch segfault
4362 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4363 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4364 return 0;
4367 if cc_check "$_ld_gif" ; then
4368 def_gif_4='#define CONFIG_GIF_4 1'
4369 res_comment=""
4371 else
4372 def_gif='#undef CONFIG_GIF'
4373 def_gif_4='#undef CONFIG_GIF_4'
4374 novomodules="gif89a $novomodules"
4375 nocodecmodules="gif $nocodecmodules"
4377 echores "$_gif"
4380 case "$_gif" in yes*)
4381 echocheck "broken giflib workaround"
4382 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4384 cat > $TMPC << EOF
4385 #include <stdio.h>
4386 #include <gif_lib.h>
4387 int main(void) {
4388 GifFileType gif = {.UserData = NULL};
4389 printf("UserData is at address %p\n", gif.UserData);
4390 return 0;
4393 if cc_check "$_ld_gif" ; then
4394 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4395 echores "disabled"
4396 else
4397 echores "enabled"
4400 esac
4403 echocheck "VESA support"
4404 if test "$_vesa" = auto ; then
4405 _vesa=no
4406 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4408 if test "$_vesa" = yes ; then
4409 def_vesa='#define CONFIG_VESA 1'
4410 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4411 vomodules="vesa $vomodules"
4412 else
4413 def_vesa='#undef CONFIG_VESA'
4414 novomodules="vesa $novomodules"
4416 echores "$_vesa"
4418 #################
4419 # VIDEO + AUDIO #
4420 #################
4423 echocheck "SDL"
4424 _inc_tmp=""
4425 _ld_tmp=""
4426 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4427 if test -z "$_sdlconfig" ; then
4428 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4429 _sdlconfig="sdl-config"
4430 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4431 _sdlconfig="sdl11-config"
4432 else
4433 _sdlconfig=false
4436 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4437 cat > $TMPC << EOF
4438 #ifdef CONFIG_SDL_SDL_H
4439 #include <SDL/SDL.h>
4440 #else
4441 #include <SDL.h>
4442 #endif
4443 #ifndef __APPLE__
4444 // we allow SDL hacking our main() only on OSX
4445 #undef main
4446 #endif
4447 int main(int argc, char *argv[]) {
4448 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4449 return 0;
4452 _sdl=no
4453 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4454 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4455 _sdl=yes
4456 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4457 break
4459 done
4460 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4461 res_comment="using $_sdlconfig"
4462 if cygwin ; then
4463 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4464 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4465 elif mingw32 ; then
4466 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4467 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4468 else
4469 _inc_tmp="$($_sdlconfig --cflags)"
4470 _ld_tmp="$($_sdlconfig --libs)"
4472 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4473 _sdl=yes
4474 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4475 # HACK for BeOS/Haiku SDL
4476 _ld_tmp="$_ld_tmp -lstdc++"
4477 _sdl=yes
4481 if test "$_sdl" = yes ; then
4482 def_sdl='#define CONFIG_SDL 1'
4483 extra_cflags="$extra_cflags $_inc_tmp"
4484 libs_mplayer="$libs_mplayer $_ld_tmp"
4485 vomodules="sdl $vomodules"
4486 aomodules="sdl $aomodules"
4487 else
4488 def_sdl='#undef CONFIG_SDL'
4489 novomodules="sdl $novomodules"
4490 noaomodules="sdl $noaomodules"
4492 echores "$_sdl"
4495 # make sure this stays below CoreVideo to avoid issues due to namespace
4496 # conflicts between -lGL and -framework OpenGL
4497 echocheck "OpenGL"
4498 #Note: this test is run even with --enable-gl since we autodetect linker flags
4499 if (test "$_x11" = yes || test "$_sdl" = yes || test "$_cocoa" = yes || win32) && test "$_gl" != no ; then
4500 cat > $TMPC << EOF
4501 #ifdef GL_WIN32
4502 #include <windows.h>
4503 #include <GL/gl.h>
4504 #elif defined(GL_SDL)
4505 #include <GL/gl.h>
4506 #ifdef CONFIG_SDL_SDL_H
4507 #include <SDL/SDL.h>
4508 #else
4509 #include <SDL.h>
4510 #endif
4511 #ifndef __APPLE__
4512 // we allow SDL hacking our main() only on OSX
4513 #undef main
4514 #endif
4515 #else
4516 #include <GL/gl.h>
4517 #include <X11/Xlib.h>
4518 #include <GL/glx.h>
4519 #endif
4520 int main(int argc, char *argv[]) {
4521 #ifdef GL_WIN32
4522 HDC dc;
4523 wglCreateContext(dc);
4524 #elif defined(GL_SDL)
4525 SDL_GL_SwapBuffers();
4526 #else
4527 glXCreateContext(NULL, NULL, NULL, True);
4528 #endif
4529 glFinish();
4530 return 0;
4533 _gl=no
4534 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4535 if cc_check $_ld_tmp $_ld_lm ; then
4536 _gl=yes
4537 _gl_x11=yes
4538 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4539 break
4541 done
4542 if cc_check -DGL_WIN32 -lopengl32 ; then
4543 _gl=yes
4544 _gl_win32=yes
4545 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4547 if test "$_cocoa" = yes ; then
4548 _gl=yes
4549 _gl_cocoa=yes
4551 # last so it can reuse any linker etc. flags detected before
4552 if test "$_sdl" = yes ; then
4553 if cc_check -DGL_SDL ||
4554 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4555 _gl=yes
4556 _gl_sdl=yes
4557 elif cc_check -DGL_SDL -lGL ||
4558 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4559 _gl=yes
4560 _gl_sdl=yes
4561 libs_mplayer="$libs_mplayer -lGL"
4564 else
4565 _gl=no
4567 if test "$_gl" = yes ; then
4568 def_gl='#define CONFIG_GL 1'
4569 res_comment="backends:"
4570 if test "$_gl_cocoa" = yes ; then
4571 def_gl_cocoa='#define CONFIG_GL_COCOA 1'
4572 res_comment="$res_comment cocoa"
4574 if test "$_gl_win32" = yes ; then
4575 def_gl_win32='#define CONFIG_GL_WIN32 1'
4576 res_comment="$res_comment win32"
4578 if test "$_gl_x11" = yes ; then
4579 def_gl_x11='#define CONFIG_GL_X11 1'
4580 res_comment="$res_comment x11"
4582 if test "$_gl_sdl" = yes ; then
4583 def_gl_sdl='#define CONFIG_GL_SDL 1'
4584 res_comment="$res_comment sdl"
4586 vomodules="opengl $vomodules"
4587 else
4588 def_gl='#undef CONFIG_GL'
4589 def_gl_cocoa='#undef CONFIG_GL_COCOA'
4590 def_gl_win32='#undef CONFIG_GL_WIN32'
4591 def_gl_x11='#undef CONFIG_GL_X11'
4592 def_gl_sdl='#undef CONFIG_GL_SDL'
4593 novomodules="opengl $novomodules"
4595 echores "$_gl"
4598 if os2 ; then
4599 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4600 if test "$_kva" = auto; then
4601 _kva=no;
4602 header_check_broken os2.h kva.h -lkva && _kva=yes
4604 if test "$_kva" = yes ; then
4605 def_kva='#define CONFIG_KVA 1'
4606 libs_mplayer="$libs_mplayer -lkva"
4607 vomodules="kva $vomodules"
4608 else
4609 def_kva='#undef CONFIG_KVA'
4610 novomodules="kva $novomodules"
4612 echores "$_kva"
4613 fi #if os2
4616 if win32; then
4618 echocheck "Windows waveout"
4619 if test "$_win32waveout" = auto ; then
4620 _win32waveout=no
4621 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4623 if test "$_win32waveout" = yes ; then
4624 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4625 libs_mplayer="$libs_mplayer -lwinmm"
4626 aomodules="win32 $aomodules"
4627 else
4628 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4629 noaomodules="win32 $noaomodules"
4631 echores "$_win32waveout"
4633 echocheck "Direct3D"
4634 if test "$_direct3d" = auto ; then
4635 _direct3d=no
4636 header_check d3d9.h && _direct3d=yes
4638 if test "$_direct3d" = yes ; then
4639 def_direct3d='#define CONFIG_DIRECT3D 1'
4640 vomodules="direct3d $vomodules"
4641 else
4642 def_direct3d='#undef CONFIG_DIRECT3D'
4643 novomodules="direct3d $novomodules"
4645 echores "$_direct3d"
4647 echocheck "Directx"
4648 if test "$_directx" = auto ; then
4649 cat > $TMPC << EOF
4650 #include <ddraw.h>
4651 #include <dsound.h>
4652 int main(void) { return 0; }
4654 _directx=no
4655 cc_check -lgdi32 && _directx=yes
4657 if test "$_directx" = yes ; then
4658 def_directx='#define CONFIG_DIRECTX 1'
4659 libs_mplayer="$libs_mplayer -lgdi32"
4660 vomodules="directx $vomodules"
4661 aomodules="dsound $aomodules"
4662 else
4663 def_directx='#undef CONFIG_DIRECTX'
4664 novomodules="directx $novomodules"
4665 noaomodules="dsound $noaomodules"
4667 echores "$_directx"
4669 fi #if win32; then
4672 echocheck "DXR3/H+"
4673 if test "$_dxr3" = auto ; then
4674 _dxr3=no
4675 header_check linux/em8300.h && _dxr3=yes
4677 if test "$_dxr3" = yes ; then
4678 def_dxr3='#define CONFIG_DXR3 1'
4679 vomodules="dxr3 $vomodules"
4680 else
4681 def_dxr3='#undef CONFIG_DXR3'
4682 novomodules="dxr3 $novomodules"
4684 echores "$_dxr3"
4687 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4688 if test "$_ivtv" = auto ; then
4689 cat > $TMPC << EOF
4690 #include <sys/time.h>
4691 #include <linux/videodev2.h>
4692 #include <linux/ivtv.h>
4693 #include <sys/ioctl.h>
4694 int main(void) {
4695 struct ivtv_cfg_stop_decode sd;
4696 struct ivtv_cfg_start_decode sd1;
4697 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4698 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4699 return 0; }
4701 _ivtv=no
4702 cc_check && _ivtv=yes
4704 if test "$_ivtv" = yes ; then
4705 def_ivtv='#define CONFIG_IVTV 1'
4706 vomodules="ivtv $vomodules"
4707 aomodules="ivtv $aomodules"
4708 else
4709 def_ivtv='#undef CONFIG_IVTV'
4710 novomodules="ivtv $novomodules"
4711 noaomodules="ivtv $noaomodules"
4713 echores "$_ivtv"
4716 echocheck "V4L2 MPEG Decoder"
4717 if test "$_v4l2" = auto ; then
4718 cat > $TMPC << EOF
4719 #include <sys/time.h>
4720 #include <linux/videodev2.h>
4721 #include <linux/version.h>
4722 int main(void) {
4723 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4724 #error kernel headers too old, need 2.6.22
4725 #endif
4726 struct v4l2_ext_controls ctrls;
4727 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4728 return 0;
4731 _v4l2=no
4732 cc_check && _v4l2=yes
4734 if test "$_v4l2" = yes ; then
4735 def_v4l2='#define CONFIG_V4L2_DECODER 1'
4736 vomodules="v4l2 $vomodules"
4737 aomodules="v4l2 $aomodules"
4738 else
4739 def_v4l2='#undef CONFIG_V4L2_DECODER'
4740 novomodules="v4l2 $novomodules"
4741 noaomodules="v4l2 $noaomodules"
4743 echores "$_v4l2"
4747 #########
4748 # AUDIO #
4749 #########
4752 echocheck "OSS Audio"
4753 if test "$_ossaudio" = auto ; then
4754 _ossaudio=no
4755 return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes
4757 if test "$_ossaudio" = yes ; then
4758 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
4759 aomodules="oss $aomodules"
4760 cat > $TMPC << EOF
4761 #include <$_soundcard_header>
4762 #ifdef OPEN_SOUND_SYSTEM
4763 int main(void) { return 0; }
4764 #else
4765 #error Not the real thing
4766 #endif
4768 _real_ossaudio=no
4769 cc_check && _real_ossaudio=yes
4770 if test "$_real_ossaudio" = yes; then
4771 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4772 # Check for OSS4 headers (override default headers)
4773 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4774 if test -f /etc/oss.conf; then
4775 . /etc/oss.conf
4776 _ossinc="$OSSLIBDIR/include"
4777 if test -f "$_ossinc/sys/soundcard.h"; then
4778 extra_cflags="-I$_ossinc $extra_cflags"
4781 elif netbsd || openbsd ; then
4782 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4783 extra_ldflags="$extra_ldflags -lossaudio"
4784 else
4785 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4787 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4788 else
4789 def_ossaudio='#undef CONFIG_OSS_AUDIO'
4790 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4791 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4792 noaomodules="oss $noaomodules"
4794 echores "$_ossaudio"
4797 echocheck "aRts"
4798 if test "$_arts" = auto ; then
4799 _arts=no
4800 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4801 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4802 _arts=yes
4806 if test "$_arts" = yes ; then
4807 def_arts='#define CONFIG_ARTS 1'
4808 aomodules="arts $aomodules"
4809 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
4810 extra_cflags="$extra_cflags $(artsc-config --cflags)"
4811 else
4812 noaomodules="arts $noaomodules"
4814 echores "$_arts"
4817 echocheck "EsounD"
4818 if test "$_esd" = auto ; then
4819 _esd=no
4820 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4821 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
4824 echores "$_esd"
4826 if test "$_esd" = yes ; then
4827 def_esd='#define CONFIG_ESD 1'
4828 aomodules="esd $aomodules"
4829 libs_mplayer="$libs_mplayer $(esd-config --libs)"
4830 extra_cflags="$extra_cflags $(esd-config --cflags)"
4832 echocheck "esd_get_latency()"
4833 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
4834 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
4835 echores "$_esd_latency"
4836 else
4837 def_esd='#undef CONFIG_ESD'
4838 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4839 noaomodules="esd $noaomodules"
4842 echocheck "RSound"
4843 if test "$_rsound" = auto ; then
4844 _rsound=no
4845 statement_check rsound.h 'rsd_init(NULL);' -lrsound && _rsound=yes
4847 echores "$_rsound"
4849 if test "$_rsound" = yes ; then
4850 def_rsound='#define CONFIG_RSOUND 1'
4851 aomodules="rsound $aomodules"
4852 libs_mplayer="$libs_mplayer -lrsound"
4853 else
4854 def_rsound='#undef CONFIG_RSOUND'
4855 noaomodules="rsound $noaomodules"
4859 echocheck "NAS"
4860 if test "$_nas" = auto ; then
4861 _nas=no
4862 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
4864 if test "$_nas" = yes ; then
4865 def_nas='#define CONFIG_NAS 1'
4866 libs_mplayer="$libs_mplayer -laudio -lXt"
4867 aomodules="nas $aomodules"
4868 else
4869 noaomodules="nas $noaomodules"
4870 def_nas='#undef CONFIG_NAS'
4872 echores "$_nas"
4875 echocheck "pulse"
4876 if test "$_pulse" = auto ; then
4877 _pulse=no
4878 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4879 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
4880 _pulse=yes
4883 echores "$_pulse"
4885 if test "$_pulse" = yes ; then
4886 def_pulse='#define CONFIG_PULSE 1'
4887 aomodules="pulse $aomodules"
4888 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
4889 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
4890 else
4891 def_pulse='#undef CONFIG_PULSE'
4892 noaomodules="pulse $noaomodules"
4896 echocheck "JACK"
4897 if test "$_jack" = auto ; then
4898 _jack=yes
4899 if statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4900 libs_mplayer="$libs_mplayer -ljack"
4901 elif statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' $($_pkg_config --libs --cflags --silence-errors jack) ; then
4902 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
4903 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
4904 else
4905 _jack=no
4909 if test "$_jack" = yes ; then
4910 def_jack='#define CONFIG_JACK 1'
4911 aomodules="jack $aomodules"
4912 else
4913 noaomodules="jack $noaomodules"
4915 echores "$_jack"
4917 echocheck "OpenAL"
4918 if test "$_openal" = auto ; then
4919 _openal=no
4920 cat > $TMPC << EOF
4921 #ifdef OPENAL_AL_H
4922 #include <OpenAL/al.h>
4923 #else
4924 #include <AL/al.h>
4925 #endif
4926 int main(void) {
4927 alSourceQueueBuffers(0, 0, 0);
4928 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4929 return 0;
4932 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4933 cc_check $I && _openal=yes && break
4934 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
4935 done
4936 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
4938 if test "$_openal" = yes ; then
4939 def_openal='#define CONFIG_OPENAL 1'
4940 aomodules="openal $aomodules"
4941 else
4942 noaomodules="openal $noaomodules"
4944 echores "$_openal"
4946 echocheck "ALSA audio"
4947 if test "$_alloca" != yes ; then
4948 _alsa=no
4949 res_comment="alloca missing"
4951 if test "$_alsa" != no ; then
4952 _alsa=no
4953 cat > $TMPC << EOF
4954 #include <sys/asoundlib.h>
4955 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4956 #error "alsa version != 0.5.x"
4957 #endif
4958 int main(void) { return 0; }
4960 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
4962 cat > $TMPC << EOF
4963 #include <sys/asoundlib.h>
4964 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4965 #error "alsa version != 0.9.x"
4966 #endif
4967 int main(void) { return 0; }
4969 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
4970 cat > $TMPC << EOF
4971 #include <alsa/asoundlib.h>
4972 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4973 #error "alsa version != 0.9.x"
4974 #endif
4975 int main(void) { return 0; }
4977 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
4979 cat > $TMPC << EOF
4980 #include <sys/asoundlib.h>
4981 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4982 #error "alsa version != 1.0.x"
4983 #endif
4984 int main(void) { return 0; }
4986 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
4987 cat > $TMPC << EOF
4988 #include <alsa/asoundlib.h>
4989 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4990 #error "alsa version != 1.0.x"
4991 #endif
4992 int main(void) { return 0; }
4994 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
4996 def_alsa='#undef CONFIG_ALSA'
4997 def_alsa5='#undef CONFIG_ALSA5'
4998 def_alsa9='#undef CONFIG_ALSA9'
4999 def_alsa1x='#undef CONFIG_ALSA1X'
5000 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5001 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5002 if test "$_alsaver" ; then
5003 _alsa=yes
5004 if test "$_alsaver" = '0.5.x' ; then
5005 _alsa5=yes
5006 aomodules="alsa5 $aomodules"
5007 def_alsa5='#define CONFIG_ALSA5 1'
5008 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5009 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5010 elif test "$_alsaver" = '0.9.x-sys' ; then
5011 _alsa9=yes
5012 aomodules="alsa $aomodules"
5013 def_alsa='#define CONFIG_ALSA 1'
5014 def_alsa9='#define CONFIG_ALSA9 1'
5015 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5016 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5017 elif test "$_alsaver" = '0.9.x-alsa' ; then
5018 _alsa9=yes
5019 aomodules="alsa $aomodules"
5020 def_alsa='#define CONFIG_ALSA 1'
5021 def_alsa9='#define CONFIG_ALSA9 1'
5022 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5023 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5024 elif test "$_alsaver" = '1.0.x-sys' ; then
5025 _alsa1x=yes
5026 aomodules="alsa $aomodules"
5027 def_alsa='#define CONFIG_ALSA 1'
5028 def_alsa1x="#define CONFIG_ALSA1X 1"
5029 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5030 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5031 elif test "$_alsaver" = '1.0.x-alsa' ; then
5032 _alsa1x=yes
5033 aomodules="alsa $aomodules"
5034 def_alsa='#define CONFIG_ALSA 1'
5035 def_alsa1x="#define CONFIG_ALSA1X 1"
5036 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5037 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5038 else
5039 _alsa=no
5040 res_comment="unknown version"
5042 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5043 else
5044 noaomodules="alsa $noaomodules"
5046 echores "$_alsa"
5049 echocheck "Sun audio"
5050 if test "$_sunaudio" = auto ; then
5051 cat > $TMPC << EOF
5052 #include <sys/types.h>
5053 #include <sys/audioio.h>
5054 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5056 _sunaudio=no
5057 cc_check && _sunaudio=yes
5059 if test "$_sunaudio" = yes ; then
5060 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5061 aomodules="sun $aomodules"
5062 else
5063 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5064 noaomodules="sun $noaomodules"
5066 echores "$_sunaudio"
5069 if darwin; then
5070 echocheck "CoreAudio"
5071 if test "$_coreaudio" = auto ; then
5072 cat > $TMPC <<EOF
5073 #include <CoreAudio/CoreAudio.h>
5074 #include <AudioToolbox/AudioToolbox.h>
5075 #include <AudioUnit/AudioUnit.h>
5076 int main(void) { return 0; }
5078 _coreaudio=no
5079 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5081 if test "$_coreaudio" = yes ; then
5082 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5083 def_coreaudio='#define CONFIG_COREAUDIO 1'
5084 aomodules="coreaudio $aomodules"
5085 else
5086 def_coreaudio='#undef CONFIG_COREAUDIO'
5087 noaomodules="coreaudio $noaomodules"
5089 echores $_coreaudio
5090 fi #if darwin
5093 if irix; then
5094 echocheck "SGI audio"
5095 if test "$_sgiaudio" = auto ; then
5096 _sgiaudio=no
5097 header_check dmedia/audio.h && _sgiaudio=yes
5099 if test "$_sgiaudio" = "yes" ; then
5100 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5101 libs_mplayer="$libs_mplayer -laudio"
5102 aomodules="sgi $aomodules"
5103 else
5104 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5105 noaomodules="sgi $noaomodules"
5107 echores "$_sgiaudio"
5108 fi #if irix
5111 if os2 ; then
5112 echocheck "KAI (UNIAUD/DART)"
5113 if test "$_kai" = auto; then
5114 _kai=no;
5115 header_check_broken os2.h kai.h -lkai && _kai=yes
5117 if test "$_kai" = yes ; then
5118 def_kai='#define CONFIG_KAI 1'
5119 libs_mplayer="$libs_mplayer -lkai"
5120 aomodules="kai $aomodules"
5121 else
5122 def_kai='#undef CONFIG_KAI'
5123 noaomodules="kai $noaomodules"
5125 echores "$_kai"
5127 echocheck "DART"
5128 if test "$_dart" = auto; then
5129 _dart=no;
5130 header_check_broken os2.h dart.h -ldart && _dart=yes
5132 if test "$_dart" = yes ; then
5133 def_dart='#define CONFIG_DART 1'
5134 libs_mplayer="$libs_mplayer -ldart"
5135 aomodules="dart $aomodules"
5136 else
5137 def_dart='#undef CONFIG_DART'
5138 noaomodules="dart $noaomodules"
5140 echores "$_dart"
5141 fi #if os2
5144 # set default CD/DVD devices
5145 if win32 || os2 ; then
5146 default_cdrom_device="D:"
5147 elif darwin ; then
5148 default_cdrom_device="/dev/disk1"
5149 elif dragonfly ; then
5150 default_cdrom_device="/dev/cd0"
5151 elif freebsd ; then
5152 default_cdrom_device="/dev/acd0"
5153 elif openbsd ; then
5154 default_cdrom_device="/dev/rcd0c"
5155 elif sunos ; then
5156 default_cdrom_device="/vol/dev/aliases/cdrom0"
5157 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5158 # file system and the volfs service.
5159 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5160 elif amigaos ; then
5161 default_cdrom_device="a1ide.device:2"
5162 else
5163 default_cdrom_device="/dev/cdrom"
5166 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5167 default_dvd_device=$default_cdrom_device
5168 elif darwin ; then
5169 default_dvd_device="/dev/rdiskN"
5170 else
5171 default_dvd_device="/dev/dvd"
5175 echocheck "VCD support"
5176 if test "$_vcd" = auto; then
5177 _vcd=no
5178 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5179 _vcd=yes
5180 elif mingw32; then
5181 header_check ddk/ntddcdrm.h && _vcd=yes
5184 if test "$_vcd" = yes; then
5185 inputmodules="vcd $inputmodules"
5186 def_vcd='#define CONFIG_VCD 1'
5187 else
5188 def_vcd='#undef CONFIG_VCD'
5189 noinputmodules="vcd $noinputmodules"
5190 res_comment="not supported on this OS"
5192 echores "$_vcd"
5196 echocheck "Blu-ray support"
5197 if test "$_bluray" = auto ; then
5198 _bluray=no
5199 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0, 0)' -lbluray && _bluray=yes
5201 if test "$_bluray" = yes ; then
5202 def_bluray='#define CONFIG_LIBBLURAY 1'
5203 extra_ldflags="$extra_ldflags -lbluray"
5204 inputmodules="bluray $inputmodules"
5205 else
5206 def_bluray='#undef CONFIG_LIBBLURAY'
5207 noinputmodules="bluray $noinputmodules"
5209 echores "$_bluray"
5211 echocheck "dvdread"
5212 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5213 _dvdread_internal=no
5215 if test "$_dvdread_internal" = auto ; then
5216 _dvdread_internal=no
5217 _dvdread=no
5218 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) &&
5219 (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes ||
5220 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) ||
5221 darwin || win32 || os2; then
5222 _dvdread_internal=yes
5223 _dvdread=yes
5224 extra_cflags="-Ilibdvdread4 $extra_cflags"
5226 elif test "$_dvdread" = auto ; then
5227 _dvdread=no
5228 if test "$_dl" = yes; then
5229 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5230 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5231 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5232 _dvdread=yes
5233 extra_cflags="$extra_cflags $_dvdreadcflags"
5234 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5235 res_comment="external"
5240 if test "$_dvdread_internal" = yes; then
5241 def_dvdread='#define CONFIG_DVDREAD 1'
5242 inputmodules="dvdread(internal) $inputmodules"
5243 res_comment="internal"
5244 elif test "$_dvdread" = yes; then
5245 def_dvdread='#define CONFIG_DVDREAD 1'
5246 extra_ldflags="$extra_ldflags -ldvdread"
5247 inputmodules="dvdread(external) $inputmodules"
5248 res_comment="external"
5249 else
5250 def_dvdread='#undef CONFIG_DVDREAD'
5251 noinputmodules="dvdread $noinputmodules"
5253 echores "$_dvdread"
5256 echocheck "internal libdvdcss"
5257 if test "$_libdvdcss_internal" = auto ; then
5258 _libdvdcss_internal=no
5259 test "$_dvdread_internal" = yes && test -d libdvdcss && _libdvdcss_internal=yes
5260 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5262 if test "$_libdvdcss_internal" = yes ; then
5263 if linux || netbsd || openbsd || bsdos ; then
5264 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5265 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5266 elif freebsd || dragonfly ; then
5267 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5268 elif darwin ; then
5269 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5270 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5271 elif cygwin ; then
5272 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5273 elif beos ; then
5274 cflags_libdvdcss="-DSYS_BEOS"
5275 elif os2 ; then
5276 cflags_libdvdcss="-DSYS_OS2"
5278 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5279 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5280 inputmodules="libdvdcss(internal) $inputmodules"
5281 else
5282 noinputmodules="libdvdcss(internal) $noinputmodules"
5284 echores "$_libdvdcss_internal"
5287 echocheck "cdparanoia"
5288 if test "$_cdparanoia" = auto ; then
5289 cat > $TMPC <<EOF
5290 #include <cdda_interface.h>
5291 #include <cdda_paranoia.h>
5292 // This need a better test. How ?
5293 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5295 _cdparanoia=no
5296 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5297 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5298 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5299 done
5301 if test "$_cdparanoia" = yes ; then
5302 _cdda='yes'
5303 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5304 openbsd && extra_ldflags="$extra_ldflags -lutil"
5306 echores "$_cdparanoia"
5309 echocheck "libcdio"
5310 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5311 cat > $TMPC << EOF
5312 #include <stdio.h>
5313 #include <cdio/version.h>
5314 #include <cdio/cdda.h>
5315 #include <cdio/paranoia.h>
5316 int main(void) {
5317 void *test = cdda_verbose_set;
5318 printf("%s\n", CDIO_VERSION);
5319 return test == (void *)1;
5322 _libcdio=no
5323 for _ld_tmp in "" "-lwinmm" ; do
5324 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5325 cc_check $_ld_tmp $_ld_lm && _libcdio=yes &&
5326 extra_ldflags="$extra_ldflags $_ld_tmp" && break
5327 done
5328 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5329 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5330 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5331 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes &&
5332 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5335 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5336 _cdda='yes'
5337 def_libcdio='#define CONFIG_LIBCDIO 1'
5338 def_havelibcdio='yes'
5339 else
5340 _libcdio=no
5341 if test "$_cdparanoia" = yes ; then
5342 res_comment="using cdparanoia"
5344 def_libcdio='#undef CONFIG_LIBCDIO'
5345 def_havelibcdio='no'
5347 echores "$_libcdio"
5349 if test "$_cdda" = yes ; then
5350 test $_cddb = auto && test $networking = yes && _cddb=yes
5351 def_cdparanoia='#define CONFIG_CDDA 1'
5352 inputmodules="cdda $inputmodules"
5353 else
5354 def_cdparanoia='#undef CONFIG_CDDA'
5355 noinputmodules="cdda $noinputmodules"
5358 if test "$_cddb" = yes ; then
5359 def_cddb='#define CONFIG_CDDB 1'
5360 inputmodules="cddb $inputmodules"
5361 else
5362 _cddb=no
5363 def_cddb='#undef CONFIG_CDDB'
5364 noinputmodules="cddb $noinputmodules"
5367 echocheck "bitmap font support"
5368 if test "$_bitmap_font" = yes ; then
5369 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5370 else
5371 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5373 echores "$_bitmap_font"
5376 echocheck "freetype >= 2.0.9"
5378 # freetype depends on iconv
5379 if test "$_iconv" = no ; then
5380 _freetype=no
5381 res_comment="iconv support needed"
5384 if test "$_freetype" = auto ; then
5385 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5386 cat > $TMPC << EOF
5387 #include <stdio.h>
5388 #include <ft2build.h>
5389 #include FT_FREETYPE_H
5390 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5391 #error "Need FreeType 2.0.9 or newer"
5392 #endif
5393 int main(void) {
5394 FT_Library library;
5395 FT_Init_FreeType(&library);
5396 return 0;
5399 _freetype=no
5400 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5401 else
5402 _freetype=no
5404 if test "$_freetype" != yes ; then
5405 die "Unable to find development files for libfreetype. Aborting. If you really mean to compile without FreeType support use --disable-freetype."
5408 if test "$_freetype" = yes ; then
5409 def_freetype='#define CONFIG_FREETYPE 1'
5410 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5411 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5412 else
5413 def_freetype='#undef CONFIG_FREETYPE'
5415 echores "$_freetype"
5417 if test "$_freetype" = no ; then
5418 _fontconfig=no
5419 res_comment="FreeType support needed"
5421 echocheck "fontconfig"
5422 if test "$_fontconfig" = auto ; then
5423 cat > $TMPC << EOF
5424 #include <stdio.h>
5425 #include <stdlib.h>
5426 #include <fontconfig/fontconfig.h>
5427 #if FC_VERSION < 20402
5428 #error At least version 2.4.2 of fontconfig required
5429 #endif
5430 int main(void) {
5431 int err = FcInit();
5432 if (err == FcFalse) {
5433 printf("Couldn't initialize fontconfig lib\n");
5434 exit(err);
5436 return 0;
5439 _fontconfig=no
5440 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5441 _ld_tmp="-lfontconfig $_ld_tmp"
5442 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5443 done
5444 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5445 _inc_tmp=$($_pkg_config --cflags fontconfig)
5446 _ld_tmp=$($_pkg_config --libs fontconfig)
5447 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes &&
5448 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5450 if test "$_fontconfig" != yes ; then
5451 die "Unable to find development files for libfontconfig. Aborting. If you really mean to compile without fontconfig support use --disable-fontconfig."
5454 if test "$_fontconfig" = yes ; then
5455 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5456 else
5457 def_fontconfig='#undef CONFIG_FONTCONFIG'
5459 echores "$_fontconfig"
5462 echocheck "SSA/ASS support"
5463 if test "$_ass" = auto -o "$_ass" = yes ; then
5464 if $_pkg_config libass; then
5465 _ass=yes
5466 def_ass='#define CONFIG_ASS 1'
5467 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5468 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5469 else
5470 die "Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5472 else
5473 def_ass='#undef CONFIG_ASS'
5475 echores "$_ass"
5478 echocheck "fribidi with charsets"
5479 _inc_tmp=""
5480 _ld_tmp=""
5481 if test "$_fribidi" = auto ; then
5482 cat > $TMPC << EOF
5483 #include <stdlib.h>
5484 /* workaround for fribidi 0.10.4 and below */
5485 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5486 #include <fribidi/fribidi.h>
5487 int main(void) {
5488 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5489 exit(1);
5490 return 0;
5493 _fribidi=no
5494 _inc_tmp=""
5495 _ld_tmp="-lfribidi"
5496 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5497 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
5498 test "$_fribidi" = no ; then
5499 _inc_tmp="$($_pkg_config --cflags)"
5500 _ld_tmp="$($_pkg_config --libs)"
5501 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5504 if test "$_fribidi" = yes ; then
5505 def_fribidi='#define CONFIG_FRIBIDI 1'
5506 extra_cflags="$extra_cflags $_inc_tmp"
5507 extra_ldflags="$extra_ldflags $_ld_tmp"
5508 else
5509 def_fribidi='#undef CONFIG_FRIBIDI'
5511 echores "$_fribidi"
5514 echocheck "ENCA"
5515 if test "$_enca" = auto ; then
5516 _enca=no
5517 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5519 if test "$_enca" = yes ; then
5520 def_enca='#define CONFIG_ENCA 1'
5521 extra_ldflags="$extra_ldflags -lenca"
5522 else
5523 def_enca='#undef CONFIG_ENCA'
5525 echores "$_enca"
5528 echocheck "zlib"
5529 _zlib=no
5530 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5531 if test "$_zlib" = yes ; then
5532 def_zlib='#define CONFIG_ZLIB 1'
5533 extra_ldflags="$extra_ldflags -lz"
5534 else
5535 def_zlib='#define CONFIG_ZLIB 0'
5537 echores "$_zlib"
5540 echocheck "RTC"
5541 if test "$_rtc" = auto ; then
5542 cat > $TMPC << EOF
5543 #include <sys/ioctl.h>
5544 #ifdef __linux__
5545 #include <linux/rtc.h>
5546 #else
5547 #include <rtc.h>
5548 #define RTC_PIE_ON RTCIO_PIE_ON
5549 #endif
5550 int main(void) { return RTC_PIE_ON; }
5552 _rtc=no
5553 cc_check && _rtc=yes
5554 ppc && _rtc=no
5556 if test "$_rtc" = yes ; then
5557 def_rtc='#define HAVE_RTC 1'
5558 else
5559 def_rtc='#undef HAVE_RTC'
5561 echores "$_rtc"
5564 echocheck "mad support"
5565 if test "$_mad" = auto ; then
5566 _mad=no
5567 header_check mad.h -lmad && _mad=yes
5569 if test "$_mad" = yes ; then
5570 def_mad='#define CONFIG_LIBMAD 1'
5571 extra_ldflags="$extra_ldflags -lmad"
5572 codecmodules="libmad $codecmodules"
5573 else
5574 def_mad='#undef CONFIG_LIBMAD'
5575 nocodecmodules="libmad $nocodecmodules"
5577 echores "$_mad"
5579 echocheck "OggVorbis support"
5580 if test "$_libvorbis" = auto; then
5581 _libvorbis=no
5582 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes && _tremor=no
5583 elif test "$_libvorbis" = yes ; then
5584 _tremor=no
5586 if test "$_tremor" = auto; then
5587 _tremor=no
5588 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5590 if test "$_tremor" = yes ; then
5591 _vorbis=yes
5592 def_vorbis='#define CONFIG_OGGVORBIS 1'
5593 def_tremor='#define CONFIG_TREMOR 1'
5594 codecmodules="tremor(external) $codecmodules"
5595 res_comment="external Tremor"
5596 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
5597 elif test "$_libvorbis" = yes ; then
5598 _vorbis=yes
5599 def_vorbis='#define CONFIG_OGGVORBIS 1'
5600 codecmodules="libvorbis $codecmodules"
5601 res_comment="libvorbis"
5602 extra_ldflags="$extra_ldflags -lvorbis -logg"
5603 else
5604 _vorbis=no
5605 nocodecmodules="libvorbis $nocodecmodules"
5607 echores "$_vorbis"
5609 echocheck "libspeex (version >= 1.1 required)"
5610 if test "$_speex" = auto ; then
5611 _speex=no
5612 cat > $TMPC << EOF
5613 #include <stddef.h>
5614 #include <speex/speex.h>
5615 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5617 cc_check -lspeex $_ld_lm && _speex=yes
5619 if test "$_speex" = yes ; then
5620 def_speex='#define CONFIG_SPEEX 1'
5621 extra_ldflags="$extra_ldflags -lspeex"
5622 codecmodules="speex $codecmodules"
5623 else
5624 def_speex='#undef CONFIG_SPEEX'
5625 nocodecmodules="speex $nocodecmodules"
5627 echores "$_speex"
5629 echocheck "OggTheora support"
5630 if test "$_theora" = auto ; then
5631 _theora=no
5632 cat > $TMPC << EOF
5633 #include <theora/theora.h>
5634 #include <string.h>
5635 int main(void) {
5636 /* Theora is in flux, make sure that all interface routines and datatypes
5637 * exist and work the way we expect it, so we don't break MPlayer. */
5638 ogg_packet op;
5639 theora_comment tc;
5640 theora_info inf;
5641 theora_state st;
5642 yuv_buffer yuv;
5643 int r;
5644 double t;
5646 theora_info_init(&inf);
5647 theora_comment_init(&tc);
5649 return 0;
5651 /* we don't want to execute this kind of nonsense; just for making sure
5652 * that compilation works... */
5653 memset(&op, 0, sizeof(op));
5654 r = theora_decode_header(&inf, &tc, &op);
5655 r = theora_decode_init(&st, &inf);
5656 t = theora_granule_time(&st, op.granulepos);
5657 r = theora_decode_packetin(&st, &op);
5658 r = theora_decode_YUVout(&st, &yuv);
5659 theora_clear(&st);
5661 return 0;
5664 _ld_theora=$($_pkg_config --silence-errors --libs theora)
5665 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
5666 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
5667 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
5668 if test _theora = no; then
5669 _ld_theora="-ltheora -logg"
5670 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
5673 if test "$_theora" = yes ; then
5674 def_theora='#define CONFIG_OGGTHEORA 1'
5675 codecmodules="libtheora $codecmodules"
5676 # when --enable-theora is forced, we'd better provide a probably sane
5677 # $_ld_theora than nothing
5678 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
5679 else
5680 def_theora='#undef CONFIG_OGGTHEORA'
5681 nocodecmodules="libtheora $nocodecmodules"
5683 echores "$_theora"
5685 # Any version of libmpg123 shall be fine.
5686 echocheck "mpg123 support"
5687 def_mpg123='#undef CONFIG_MPG123'
5688 if test "$_mpg123" = auto; then
5689 _mpg123=no
5690 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
5692 if test "$_mpg123" = yes ; then
5693 def_mpg123='#define CONFIG_MPG123 1'
5694 codecmodules="mpg123 $codecmodules"
5695 else
5696 nocodecmodules="mpg123 $nocodecmodules"
5698 echores "$_mpg123"
5700 echocheck "liba52 support"
5701 def_liba52='#undef CONFIG_LIBA52'
5702 if test "$_liba52" = auto ; then
5703 _liba52=no
5704 cat > $TMPC << EOF
5705 #include <inttypes.h>
5706 #include <a52dec/a52.h>
5707 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5709 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
5711 if test "$_liba52" = yes ; then
5712 def_liba52='#define CONFIG_LIBA52 1'
5713 codecmodules="liba52 $codecmodules"
5714 else
5715 nocodecmodules="liba52 $nocodecmodules"
5717 echores "$_liba52"
5719 echocheck "libdca support"
5720 if test "$_libdca" = auto ; then
5721 _libdca=no
5722 for _ld_dca in -ldca -ldts ; do
5723 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
5724 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
5725 done
5727 if test "$_libdca" = yes ; then
5728 def_libdca='#define CONFIG_LIBDCA 1'
5729 codecmodules="libdca $codecmodules"
5730 else
5731 def_libdca='#undef CONFIG_LIBDCA'
5732 nocodecmodules="libdca $nocodecmodules"
5734 echores "$_libdca"
5736 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5737 if test "$_musepack" = yes ; then
5738 _musepack=no
5739 cat > $TMPC << EOF
5740 #include <stddef.h>
5741 #include <mpcdec/mpcdec.h>
5742 int main(void) {
5743 mpc_streaminfo info;
5744 mpc_decoder decoder;
5745 mpc_decoder_set_streaminfo(&decoder, &info);
5746 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5747 return 0;
5750 cc_check -lmpcdec $_ld_lm && _musepack=yes
5752 if test "$_musepack" = yes ; then
5753 def_musepack='#define CONFIG_MUSEPACK 1'
5754 extra_ldflags="$extra_ldflags -lmpcdec"
5755 codecmodules="musepack $codecmodules"
5756 else
5757 def_musepack='#undef CONFIG_MUSEPACK'
5758 nocodecmodules="musepack $nocodecmodules"
5760 echores "$_musepack"
5763 echocheck "FAAD2 support"
5764 if test "$_faad" = auto ; then
5765 _faad=no
5766 cat > $TMPC << EOF
5767 #include <faad.h>
5768 #ifndef FAAD_MIN_STREAMSIZE
5769 #error Too old version
5770 #endif
5771 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5772 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5774 cc_check -lfaad $_ld_lm && _faad=yes
5777 def_faad='#undef CONFIG_FAAD'
5778 if test "$_faad" = yes ; then
5779 def_faad='#define CONFIG_FAAD 1'
5780 extra_ldflags="$extra_ldflags -lfaad"
5781 codecmodules="faad2 $codecmodules"
5782 else
5783 nocodecmodules="faad2 $nocodecmodules"
5785 echores "$_faad"
5788 echocheck "LADSPA plugin support"
5789 if test "$_ladspa" = auto ; then
5790 _ladspa=no
5791 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5793 if test "$_ladspa" = yes; then
5794 def_ladspa="#define CONFIG_LADSPA 1"
5795 else
5796 def_ladspa="#undef CONFIG_LADSPA"
5798 echores "$_ladspa"
5801 echocheck "libbs2b audio filter support"
5802 if test "$_libbs2b" = auto ; then
5803 cat > $TMPC <<EOF
5804 #include <bs2b.h>
5805 #if BS2B_VERSION_MAJOR < 3
5806 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5807 #endif
5808 int main(void) {
5809 t_bs2bdp filter;
5810 filter=bs2b_open();
5811 bs2b_close(filter);
5812 return 0;
5815 _libbs2b=no
5816 if $_pkg_config --exists libbs2b ; then
5817 _inc_tmp=$($_pkg_config --cflags libbs2b)
5818 _ld_tmp=$($_pkg_config --libs libbs2b)
5819 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
5820 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
5821 else
5822 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
5823 -I/usr/local/include/bs2b ; do
5824 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
5825 extra_ldflags="$extra_ldflags -lbs2b"
5826 extra_cflags="$extra_cflags $_inc_tmp"
5827 _libbs2b=yes
5828 break
5830 done
5833 def_libbs2b="#undef CONFIG_LIBBS2B"
5834 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5835 echores "$_libbs2b"
5838 if test -z "$_codecsdir" ; then
5839 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
5840 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5841 if test -d "$dir" ; then
5842 _codecsdir="$dir"
5843 break;
5845 done
5847 # Fall back on default directory.
5848 if test -z "$_codecsdir" ; then
5849 _codecsdir="$_libdir/codecs"
5850 mingw32 || os2 && _codecsdir="codecs"
5854 echocheck "Win32 codecs"
5855 if test "$_win32dll" = auto ; then
5856 _win32dll=no
5857 if x86_32 && ! qnx; then
5858 _win32dll=yes
5861 if test "$_win32dll" = yes ; then
5862 def_win32dll='#define CONFIG_WIN32DLL 1'
5863 if ! win32 ; then
5864 def_win32_loader='#define WIN32_LOADER 1'
5865 _win32_emulation=yes
5866 else
5867 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5868 res_comment="using native windows"
5870 codecmodules="win32 $codecmodules"
5871 else
5872 def_win32dll='#undef CONFIG_WIN32DLL'
5873 def_win32_loader='#undef WIN32_LOADER'
5874 nocodecmodules="win32 $nocodecmodules"
5876 echores "$_win32dll"
5879 echocheck "XAnim codecs"
5880 if test "$_xanim" = auto ; then
5881 _xanim=no
5882 res_comment="dynamic loader support needed"
5883 if test "$_dl" = yes ; then
5884 _xanim=yes
5887 if test "$_xanim" = yes ; then
5888 def_xanim='#define CONFIG_XANIM 1'
5889 codecmodules="xanim $codecmodules"
5890 else
5891 def_xanim='#undef CONFIG_XANIM'
5892 nocodecmodules="xanim $nocodecmodules"
5894 echores "$_xanim"
5897 echocheck "RealPlayer codecs"
5898 if test "$_real" = auto ; then
5899 _real=no
5900 res_comment="dynamic loader support needed"
5901 if test "$_dl" = yes || test "$_win32dll" = yes &&
5902 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
5903 _real=yes
5906 if test "$_real" = yes ; then
5907 def_real='#define CONFIG_REALCODECS 1'
5908 codecmodules="real $codecmodules"
5909 else
5910 def_real='#undef CONFIG_REALCODECS'
5911 nocodecmodules="real $nocodecmodules"
5913 echores "$_real"
5916 echocheck "QuickTime codecs"
5917 _qtx_emulation=no
5918 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
5919 if test "$_qtx" = auto ; then
5920 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
5922 if test "$_qtx" = yes ; then
5923 def_qtx='#define CONFIG_QTX_CODECS 1'
5924 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
5925 codecmodules="qtx $codecmodules"
5926 darwin || win32 || _qtx_emulation=yes
5927 else
5928 def_qtx='#undef CONFIG_QTX_CODECS'
5929 nocodecmodules="qtx $nocodecmodules"
5931 echores "$_qtx"
5933 echocheck "Nemesi Streaming Media libraries"
5934 if test "$_nemesi" = auto && test "$networking" = yes ; then
5935 _nemesi=no
5936 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
5937 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
5938 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
5939 _nemesi=yes
5942 if test "$_nemesi" = yes; then
5943 _native_rtsp=no
5944 def_nemesi='#define CONFIG_LIBNEMESI 1'
5945 inputmodules="nemesi $inputmodules"
5946 else
5947 _native_rtsp="$networking"
5948 _nemesi=no
5949 def_nemesi='#undef CONFIG_LIBNEMESI'
5950 noinputmodules="nemesi $noinputmodules"
5952 echores "$_nemesi"
5954 echocheck "LIVE555 Streaming Media libraries"
5955 if test "$_live" = auto && test "$networking" = yes ; then
5956 cat > $TMPCPP << EOF
5957 #include <liveMedia.hh>
5958 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5959 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5960 #endif
5961 int main(void) { return 0; }
5964 _live=no
5965 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
5966 cxx_check $I/liveMedia/include $I/UsageEnvironment/include $I/groupsock/include &&
5967 _livelibdir=$(echo $I| sed s/-I//) &&
5968 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
5969 $_livelibdir/groupsock/libgroupsock.a \
5970 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
5971 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
5972 $extra_ldflags -lstdc++" \
5973 extra_cxxflags="-I$_livelibdir/liveMedia/include \
5974 -I$_livelibdir/UsageEnvironment/include \
5975 -I$_livelibdir/BasicUsageEnvironment/include \
5976 -I$_livelibdir/groupsock/include" &&
5977 _live=yes && break
5978 done
5979 if test "$_live" != yes ; then
5980 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
5981 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
5982 _live_dist=yes
5986 if test "$_live" = yes && test "$networking" = yes; then
5987 test $_livelibdir && res_comment="using $_livelibdir"
5988 def_live='#define CONFIG_LIVE555 1'
5989 inputmodules="live555 $inputmodules"
5990 elif test "$_live_dist" = yes && test "$networking" = yes; then
5991 res_comment="using distribution version"
5992 _live="yes"
5993 def_live='#define CONFIG_LIVE555 1'
5994 extra_ldflags="$extra_ldflags $ld_tmp"
5995 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
5996 inputmodules="live555 $inputmodules"
5997 else
5998 _live=no
5999 def_live='#undef CONFIG_LIVE555'
6000 noinputmodules="live555 $noinputmodules"
6002 echores "$_live"
6006 all_libav_libs="libavutil libavcodec libavformat libswscale libpostproc"
6007 echocheck "Libav ($all_libav_libs)"
6008 if test "$ffmpeg" = auto ; then
6009 if $_pkg_config --exists --print-errors $all_libav_libs ; then
6010 inc_ffmpeg=$($_pkg_config --cflags $all_libav_libs)
6011 _ld_tmp=$($_pkg_config --libs $all_libav_libs)
6012 extra_ldflags="$extra_ldflags $_ld_tmp"
6013 extra_cflags="$extra_cflags $inc_ffmpeg"
6014 elif header_check libavutil/avutil.h -lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
6015 extra_ldflags="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
6016 else
6017 die "Unable to find development files for some of the required Libav libraries above. Aborting."
6021 ffmpeg_eval_api=no
6022 def_ffmpeg_eval_api="#undef CONFIG_FFMPEG_EVAL_API"
6023 if $_pkg_config --atleast-version=50.33.0 libavutil ; then
6024 ffmpeg_eval_api=yes
6025 def_ffmpeg_eval_api="#define CONFIG_FFMPEG_EVAL_API 1"
6028 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
6029 if ! test -z "$_ffmpeg_source" ; then
6030 def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
6035 echocheck "libdv-0.9.5+"
6036 if test "$_libdv" = auto ; then
6037 _libdv=no
6038 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
6040 if test "$_libdv" = yes ; then
6041 def_libdv='#define CONFIG_LIBDV095 1'
6042 extra_ldflags="$extra_ldflags -ldv"
6043 codecmodules="libdv $codecmodules"
6044 else
6045 def_libdv='#undef CONFIG_LIBDV095'
6046 nocodecmodules="libdv $nocodecmodules"
6048 echores "$_libdv"
6051 echocheck "Xvid"
6052 if test "$_xvid" = auto ; then
6053 _xvid=no
6054 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6055 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6056 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6057 done
6060 if test "$_xvid" = yes ; then
6061 def_xvid='#define CONFIG_XVID4 1'
6062 codecmodules="xvid $codecmodules"
6063 else
6064 def_xvid='#undef CONFIG_XVID4'
6065 nocodecmodules="xvid $nocodecmodules"
6067 echores "$_xvid"
6070 echocheck "libnut"
6071 if test "$_libnut" = auto ; then
6072 _libnut=no
6073 statement_check libnut.h 'nut_context_tt * nut; nut_error(0)' -lnut && _libnut=yes
6076 if test "$_libnut" = yes ; then
6077 def_libnut='#define CONFIG_LIBNUT 1'
6078 extra_ldflags="$extra_ldflags -lnut"
6079 else
6080 def_libnut='#undef CONFIG_LIBNUT'
6082 echores "$_libnut"
6084 # These VO checks must be done after the FFmpeg one
6085 echocheck "/dev/mga_vid"
6086 if test "$_mga" = auto ; then
6087 _mga=no
6088 test -c /dev/mga_vid && _mga=yes
6090 if test "$_mga" = yes ; then
6091 def_mga='#define CONFIG_MGA 1'
6092 vomodules="mga $vomodules"
6093 else
6094 def_mga='#undef CONFIG_MGA'
6095 novomodules="mga $novomodules"
6097 echores "$_mga"
6100 echocheck "xmga"
6101 if test "$_xmga" = auto ; then
6102 _xmga=no
6103 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6105 if test "$_xmga" = yes ; then
6106 def_xmga='#define CONFIG_XMGA 1'
6107 vomodules="xmga $vomodules"
6108 else
6109 def_xmga='#undef CONFIG_XMGA'
6110 novomodules="xmga $novomodules"
6112 echores "$_xmga"
6115 echocheck "UnRAR executable"
6116 if test "$_unrar_exec" = auto ; then
6117 _unrar_exec="yes"
6118 mingw32 && _unrar_exec="no"
6120 if test "$_unrar_exec" = yes ; then
6121 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6122 else
6123 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
6125 echores "$_unrar_exec"
6127 echocheck "TV interface"
6128 if test "$_tv" = yes ; then
6129 def_tv='#define CONFIG_TV 1'
6130 inputmodules="tv $inputmodules"
6131 else
6132 noinputmodules="tv $noinputmodules"
6133 def_tv='#undef CONFIG_TV'
6135 echores "$_tv"
6138 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6139 echocheck "*BSD BT848 bt8xx header"
6140 _ioctl_bt848_h=no
6141 for file in "machine/ioctl_bt848.h" \
6142 "dev/bktr/ioctl_bt848.h" \
6143 "dev/video/bktr/ioctl_bt848.h" \
6144 "dev/ic/bt8xx.h" ; do
6145 cat > $TMPC <<EOF
6146 #include <sys/types.h>
6147 #include <sys/ioctl.h>
6148 #include <$file>
6149 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6151 if cc_check ; then
6152 _ioctl_bt848_h=yes
6153 _ioctl_bt848_h_name="$file"
6154 break;
6156 done
6157 if test "$_ioctl_bt848_h" = yes ; then
6158 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6159 res_comment="using $_ioctl_bt848_h_name"
6160 else
6161 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6163 echores "$_ioctl_bt848_h"
6165 echocheck "*BSD ioctl_meteor.h"
6166 _ioctl_meteor_h=no
6167 for ioctl_meteor_h_path in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6168 statement_check_broken "sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6169 _ioctl_meteor_h=yes && break
6170 done
6171 if test "$_ioctl_meteor_h" = yes ; then
6172 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6173 res_comment="using $ioctl_meteor_h_path"
6174 else
6175 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6177 echores "$_ioctl_meteor_h"
6179 echocheck "*BSD BrookTree 848 TV interface"
6180 if test "$_tv_bsdbt848" = auto ; then
6181 _tv_bsdbt848=no
6182 if test "$_tv" = yes ; then
6183 cat > $TMPC <<EOF
6184 #include <sys/types.h>
6185 $def_ioctl_meteor_h_name
6186 $def_ioctl_bt848_h_name
6187 #ifdef IOCTL_METEOR_H_NAME
6188 #include IOCTL_METEOR_H_NAME
6189 #endif
6190 #ifdef IOCTL_BT848_H_NAME
6191 #include IOCTL_BT848_H_NAME
6192 #endif
6193 int main(void) {
6194 ioctl(0, METEORSINPUT, 0);
6195 ioctl(0, TVTUNER_GETFREQ, 0);
6196 return 0;
6199 cc_check && _tv_bsdbt848=yes
6202 if test "$_tv_bsdbt848" = yes ; then
6203 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
6204 inputmodules="tv-bsdbt848 $inputmodules"
6205 else
6206 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
6207 noinputmodules="tv-bsdbt848 $noinputmodules"
6209 echores "$_tv_bsdbt848"
6210 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6213 echocheck "DirectShow TV interface"
6214 if test "$_tv_dshow" = auto ; then
6215 _tv_dshow=no
6216 if test "$_tv" = yes && win32 ; then
6217 statement_check ole2.h 'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow=yes
6220 if test "$_tv_dshow" = yes ; then
6221 inputmodules="tv-dshow $inputmodules"
6222 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
6223 extra_ldflags="$extra_ldflags -lole32 -luuid"
6224 else
6225 noinputmodules="tv-dshow $noinputmodules"
6226 def_tv_dshow='#undef CONFIG_TV_DSHOW'
6228 echores "$_tv_dshow"
6231 echocheck "Video 4 Linux TV interface"
6232 if test "$_tv_v4l1" = auto ; then
6233 _tv_v4l1=no
6234 if test "$_tv" = yes && linux ; then
6235 header_check_broken sys/time.h linux/videodev.h && _tv_v4l1=yes
6238 if test "$_tv_v4l1" = yes ; then
6239 _audio_input=yes
6240 _tv_v4l=yes
6241 def_tv_v4l='#define CONFIG_TV_V4L 1'
6242 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6243 inputmodules="tv-v4l $inputmodules"
6244 else
6245 noinputmodules="tv-v4l1 $noinputmodules"
6246 def_tv_v4l='#undef CONFIG_TV_V4L'
6248 echores "$_tv_v4l1"
6251 echocheck "Video 4 Linux 2 TV interface"
6252 if test "$_tv_v4l2" = auto ; then
6253 _tv_v4l2=no
6254 if test "$_tv" = yes && linux ; then
6255 header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
6256 elif test "$_tv" = yes && test "$sys_videoio_h" = "yes" ; then
6257 _tv_v4l2=yes
6260 if test "$_tv_v4l2" = yes ; then
6261 _audio_input=yes
6262 _tv_v4l=yes
6263 def_tv_v4l='#define CONFIG_TV_V4L 1'
6264 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6265 inputmodules="tv-v4l2 $inputmodules"
6266 else
6267 noinputmodules="tv-v4l2 $noinputmodules"
6268 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6270 echores "$_tv_v4l2"
6273 echocheck "Radio interface"
6274 if test "$_radio" = yes ; then
6275 def_radio='#define CONFIG_RADIO 1'
6276 inputmodules="radio $inputmodules"
6277 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6278 _radio_capture=no
6280 if test "$_radio_capture" = yes ; then
6281 _audio_input=yes
6282 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6283 else
6284 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6286 else
6287 noinputmodules="radio $noinputmodules"
6288 def_radio='#undef CONFIG_RADIO'
6289 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6290 _radio_capture=no
6292 echores "$_radio"
6293 echocheck "Capture for Radio interface"
6294 echores "$_radio_capture"
6296 echocheck "Video 4 Linux 2 Radio interface"
6297 if test "$_radio_v4l2" = auto ; then
6298 _radio_v4l2=no
6299 if test "$_radio" = yes && linux ; then
6300 header_check linux/videodev2.h && _radio_v4l2=yes
6303 if test "$_radio_v4l2" = yes ; then
6304 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6305 else
6306 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6308 echores "$_radio_v4l2"
6310 echocheck "Video 4 Linux Radio interface"
6311 if test "$_radio_v4l" = auto ; then
6312 _radio_v4l=no
6313 if test "$_radio" = yes && linux ; then
6314 header_check linux/videodev.h && _radio_v4l=yes
6317 if test "$_radio_v4l" = yes ; then
6318 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6319 else
6320 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6322 echores "$_radio_v4l"
6324 if freebsd || netbsd || openbsd || dragonfly || bsdos &&
6325 test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6326 echocheck "*BSD BrookTree 848 Radio interface"
6327 _radio_bsdbt848=no
6328 cat > $TMPC <<EOF
6329 #include <sys/types.h>
6330 $def_ioctl_bt848_h_name
6331 #ifdef IOCTL_BT848_H_NAME
6332 #include IOCTL_BT848_H_NAME
6333 #endif
6334 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6336 cc_check && _radio_bsdbt848=yes
6337 echores "$_radio_bsdbt848"
6338 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6340 if test "$_radio_bsdbt848" = yes ; then
6341 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6342 else
6343 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6346 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no &&
6347 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6348 die "Radio driver requires BSD BT848, V4L or V4L2!"
6351 echocheck "Video 4 Linux 2 MPEG PVR interface"
6352 if test "$_pvr" = auto ; then
6353 _pvr=no
6354 if test "$_tv_v4l2" = yes && linux ; then
6355 cat > $TMPC <<EOF
6356 #include <sys/time.h>
6357 #include <linux/videodev2.h>
6358 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6360 cc_check && _pvr=yes
6363 if test "$_pvr" = yes ; then
6364 def_pvr='#define CONFIG_PVR 1'
6365 inputmodules="pvr $inputmodules"
6366 else
6367 noinputmodules="pvr $noinputmodules"
6368 def_pvr='#undef CONFIG_PVR'
6370 echores "$_pvr"
6373 echocheck "ftp"
6374 if test "$_ftp" = "auto" ; then
6375 test "$networking" = "yes" && ! beos && _ftp=yes
6377 if test "$_ftp" = yes ; then
6378 def_ftp='#define CONFIG_FTP 1'
6379 inputmodules="ftp $inputmodules"
6380 else
6381 noinputmodules="ftp $noinputmodules"
6382 def_ftp='#undef CONFIG_FTP'
6384 echores "$_ftp"
6386 echocheck "vstream client"
6387 if test "$_vstream" = auto ; then
6388 _vstream=no
6389 cat > $TMPC <<EOF
6390 #include <vstream-client.h>
6391 void vstream_error(const char *format, ... ) {}
6392 int main(void) { vstream_start(); return 0; }
6394 cc_check -lvstream-client && _vstream=yes
6396 if test "$_vstream" = yes ; then
6397 def_vstream='#define CONFIG_VSTREAM 1'
6398 inputmodules="vstream $inputmodules"
6399 extra_ldflags="$extra_ldflags -lvstream-client"
6400 else
6401 noinputmodules="vstream $noinputmodules"
6402 def_vstream='#undef CONFIG_VSTREAM'
6404 echores "$_vstream"
6407 echocheck "Subtitles sorting"
6408 if test "$_sortsub" = yes ; then
6409 def_sortsub='#define CONFIG_SORTSUB 1'
6410 else
6411 def_sortsub='#undef CONFIG_SORTSUB'
6413 echores "$_sortsub"
6416 echocheck "XMMS inputplugin support"
6417 if test "$_xmms" = yes ; then
6418 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6419 _xmmsplugindir=$(xmms-config --input-plugin-dir)
6420 _xmmslibdir=$(xmms-config --exec-prefix)/lib
6421 else
6422 _xmmsplugindir=/usr/lib/xmms/Input
6423 _xmmslibdir=/usr/lib
6426 def_xmms='#define CONFIG_XMMS 1'
6427 if darwin ; then
6428 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6429 else
6430 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6432 else
6433 def_xmms='#undef CONFIG_XMMS'
6435 echores "$_xmms"
6437 if test "$_charset" != "noconv" ; then
6438 def_charset="#define MSG_CHARSET \"$_charset\""
6439 else
6440 def_charset="#undef MSG_CHARSET"
6441 _charset="UTF-8"
6444 #############################################################################
6446 echocheck "automatic gdb attach"
6447 if test "$_crash_debug" = yes ; then
6448 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6449 else
6450 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6451 _crash_debug=no
6453 echores "$_crash_debug"
6455 echocheck "compiler support for noexecstack"
6456 if cflag_check -Wl,-z,noexecstack ; then
6457 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
6458 echores "yes"
6459 else
6460 echores "no"
6463 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
6464 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6465 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6466 echores "yes"
6467 else
6468 echores "no"
6472 # Dynamic linking flags
6473 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6474 _ld_dl_dynamic=''
6475 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
6476 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
6477 _ld_dl_dynamic='-rdynamic'
6480 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6481 bsdos && extra_ldflags="$extra_ldflags -ldvd"
6482 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
6484 def_debug='#undef MP_DEBUG'
6485 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
6488 echocheck "joystick"
6489 def_joystick='#undef CONFIG_JOYSTICK'
6490 if test "$_joystick" = yes ; then
6491 if linux || freebsd ; then
6492 # TODO add some check
6493 def_joystick='#define CONFIG_JOYSTICK 1'
6494 else
6495 _joystick="no"
6496 res_comment="unsupported under $system_name"
6499 echores "$_joystick"
6501 echocheck "lirc"
6502 if test "$_lirc" = auto ; then
6503 _lirc=no
6504 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
6506 if test "$_lirc" = yes ; then
6507 def_lirc='#define CONFIG_LIRC 1'
6508 libs_mplayer="$libs_mplayer -llirc_client"
6509 else
6510 def_lirc='#undef CONFIG_LIRC'
6512 echores "$_lirc"
6514 echocheck "lircc"
6515 if test "$_lircc" = auto ; then
6516 _lircc=no
6517 header_check lirc/lircc.h -llircc && _lircc=yes
6519 if test "$_lircc" = yes ; then
6520 def_lircc='#define CONFIG_LIRCC 1'
6521 libs_mplayer="$libs_mplayer -llircc"
6522 else
6523 def_lircc='#undef CONFIG_LIRCC'
6525 echores "$_lircc"
6527 #############################################################################
6529 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6530 # the OMF format needs to come after the 'extern symbol prefix' check, which
6531 # uses nm.
6532 if os2 ; then
6533 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6536 #############################################################################
6538 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
6540 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6542 # This must be the last test to be performed. Any other tests following it
6543 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6544 # against libdvdread (to permit MPlayer to use its own copy of the library).
6545 # So any compilation using the flags added here but not linking against
6546 # libdvdread can fail.
6547 echocheck "DVD support (libdvdnav)"
6548 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6549 _dvdnav=no
6551 dvdnav_internal=no
6552 if test "$_dvdnav" = auto ; then
6553 if test "$_dvdread_internal" = yes ; then
6554 _dvdnav=yes
6555 dvdnav_internal=yes
6556 res_comment="internal"
6557 else
6558 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6561 if test "$_dvdnav" = auto ; then
6562 _dvdnav=no
6563 _dvdnavdir=$($_dvdnavconfig --cflags)
6564 _dvdnavlibs=$($_dvdnavconfig --libs)
6565 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
6567 if test "$_dvdnav" = yes ; then
6568 def_dvdnav='#define CONFIG_DVDNAV 1'
6569 if test "$dvdnav_internal" = yes ; then
6570 cflags_libdvdnav="-Ilibdvdnav"
6571 inputmodules="dvdnav(internal) $inputmodules"
6572 else
6573 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6574 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6575 inputmodules="dvdnav $inputmodules"
6577 else
6578 def_dvdnav='#undef CONFIG_DVDNAV'
6579 noinputmodules="dvdnav $noinputmodules"
6581 echores "$_dvdnav"
6583 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6584 # Read dvdnav comment above.
6586 mak_enable () {
6587 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6588 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6589 nprefix=$3;
6590 for part in $list; do
6591 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6592 echo "${nprefix}_$part = yes"
6594 done
6597 #############################################################################
6598 echo "Creating config.mak"
6599 cat > config.mak << EOF
6600 # -------- Generated by configure -----------
6602 # Ensure that locale settings do not interfere with shell commands.
6603 export LC_ALL = C
6605 CONFIGURATION = $configuration
6607 CHARSET = $_charset
6608 DOC_LANGS = $language_doc
6609 DOC_LANG_ALL = $doc_lang_all
6610 MAN_LANGS = $language_man
6611 MAN_LANG_ALL = $man_lang_all
6612 MSG_LANGS = $language_msg
6613 MSG_LANG_ALL = $msg_lang_all
6615 prefix = \$(DESTDIR)$_prefix
6616 BINDIR = \$(DESTDIR)$_bindir
6617 DATADIR = \$(DESTDIR)$_datadir
6618 LIBDIR = \$(DESTDIR)$_libdir
6619 MANDIR = \$(DESTDIR)$_mandir
6620 CONFDIR = \$(DESTDIR)$_confdir
6621 LOCALEDIR = \$(DESTDIR)$_localedir
6623 AR = $_ar
6624 AS = $_cc
6625 CC = $_cc
6626 CXX = $_cc
6627 HOST_CC = $_host_cc
6628 INSTALL = $_install
6629 INSTALLSTRIP = $_install_strip
6630 WINDRES = $_windres
6632 CFLAGS = $WARNFLAGS $ERRORFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6633 CXXFLAGS = $WARNFLAGS $ERRORFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6634 DEPFLAGS = $DEPFLAGS
6636 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6637 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6638 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6639 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6640 CFLAGS_STACKREALIGN = $cflags_stackrealign
6642 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6643 EXTRALIBS_MPLAYER = $libs_mplayer
6645 GETCH = $_getch
6646 TIMER = $_timer
6648 EXESUF = $_exesuf
6649 EXESUFS_ALL = .exe
6651 ARCH = $arch
6652 $(mak_enable "$arch_all" "$arch" ARCH)
6653 $(mak_enable "$subarch_all" "$subarch" ARCH)
6654 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6656 MPLAYER = $_mplayer
6658 NEED_GETTIMEOFDAY = $need_gettimeofday
6659 NEED_GLOB = $need_glob
6660 NEED_MMAP = $need_mmap
6661 NEED_SETENV = $need_setenv
6662 NEED_SHMEM = $need_shmem
6663 NEED_STRSEP = $need_strsep
6664 NEED_SWAB = $need_swab
6665 NEED_VSSCANF = $need_vsscanf
6667 # features
6668 3DFX = $_3dfx
6669 AA = $_aa
6670 ALSA1X = $_alsa1x
6671 ALSA9 = $_alsa9
6672 ALSA5 = $_alsa5
6673 APPLE_IR = $_apple_ir
6674 APPLE_REMOTE = $_apple_remote
6675 ARTS = $_arts
6676 AUDIO_INPUT = $_audio_input
6677 BITMAP_FONT = $_bitmap_font
6678 BL = $_bl
6679 CACA = $_caca
6680 CDDA = $_cdda
6681 CDDB = $_cddb
6682 COREAUDIO = $_coreaudio
6683 COREVIDEO = $_corevideo
6684 DART = $_dart
6685 DGA = $_dga
6686 DIRECT3D = $_direct3d
6687 DIRECTFB = $_directfb
6688 DIRECTX = $_directx
6689 DVBIN = $_dvbin
6690 DVDNAV = $_dvdnav
6691 DVDNAV_INTERNAL = $dvdnav_internal
6692 DVDREAD = $_dvdread
6693 DVDREAD_INTERNAL = $_dvdread_internal
6694 DXR3 = $_dxr3
6695 ESD = $_esd
6696 FAAD = $_faad
6697 FASTMEMCPY = $_fastmemcpy
6698 FBDEV = $_fbdev
6699 FREETYPE = $_freetype
6700 FTP = $_ftp
6701 GIF = $_gif
6702 GGI = $_ggi
6703 GL = $_gl
6704 GL_COCOA = $_gl_cocoa
6705 GL_WIN32 = $_gl_win32
6706 GL_X11 = $_gl_x11
6707 GL_SDL = $_gl_sdl
6708 HAVE_POSIX_SELECT = $_posix_select
6709 HAVE_SYS_MMAN_H = $_mman
6710 IVTV = $_ivtv
6711 JACK = $_jack
6712 JOYSTICK = $_joystick
6713 JPEG = $_jpeg
6714 KAI = $_kai
6715 KVA = $_kva
6716 LADSPA = $_ladspa
6717 LIBA52 = $_liba52
6718 LIBASS = $_ass
6719 LIBBLURAY = $_bluray
6720 LIBBS2B = $_libbs2b
6721 LIBDCA = $_libdca
6722 LIBDV = $_libdv
6723 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6724 LIBMAD = $_mad
6725 LIBNEMESI = $_nemesi
6726 LIBNUT = $_libnut
6727 LIBSMBCLIENT = $_smb
6728 LIBTHEORA = $_theora
6729 LIRC = $_lirc
6730 LIVE555 = $_live
6731 MACOSX_FINDER = $_macosx_finder
6732 MD5SUM = $_md5sum
6733 MGA = $_mga
6734 MNG = $_mng
6735 MPG123 = $_mpg123
6736 MUSEPACK = $_musepack
6737 NAS = $_nas
6738 NATIVE_RTSP = $_native_rtsp
6739 NETWORKING = $networking
6740 OPENAL = $_openal
6741 OSS = $_ossaudio
6742 PE_EXECUTABLE = $_pe_executable
6743 PNG = $_png
6744 PNM = $_pnm
6745 PRIORITY = $_priority
6746 PULSE = $_pulse
6747 PVR = $_pvr
6748 QTX_CODECS = $_qtx
6749 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6750 QTX_EMULATION = $_qtx_emulation
6751 QUARTZ = $_quartz
6752 RADIO=$_radio
6753 RADIO_CAPTURE=$_radio_capture
6754 REAL_CODECS = $_real
6755 RSOUND = $_rsound
6756 S3FB = $_s3fb
6757 SDL = $_sdl
6758 SPEEX = $_speex
6759 STREAM_CACHE = $_stream_cache
6760 SGIAUDIO = $_sgiaudio
6761 SUNAUDIO = $_sunaudio
6762 SVGA = $_svga
6763 TDFXFB = $_tdfxfb
6764 TDFXVID = $_tdfxvid
6765 TGA = $_tga
6766 TV = $_tv
6767 TV_BSDBT848 = $_tv_bsdbt848
6768 TV_DSHOW = $_tv_dshow
6769 TV_V4L = $_tv_v4l
6770 TV_V4L1 = $_tv_v4l1
6771 TV_V4L2 = $_tv_v4l2
6772 UNRAR_EXEC = $_unrar_exec
6773 V4L2 = $_v4l2
6774 VCD = $_vcd
6775 VDPAU = $_vdpau
6776 VESA = $_vesa
6777 VORBIS = $_vorbis
6778 VSTREAM = $_vstream
6779 WII = $_wii
6780 WIN32DLL = $_win32dll
6781 WIN32WAVEOUT = $_win32waveout
6782 WIN32_EMULATION = $_win32_emulation
6783 X11 = $_x11
6784 XANIM_CODECS = $_xanim
6785 XMGA = $_xmga
6786 XMMS_PLUGINS = $_xmms
6787 XV = $_xv
6788 XVID4 = $_xvid
6789 XVR100 = $_xvr100
6790 YUV4MPEG = $_yuv4mpeg
6792 # FFmpeg
6793 FFMPEG_EVAL_API = $ffmpeg_eval_api
6794 FFMPEG_INTERNALS = $ffmpeg_internals
6795 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6797 RANLIB = $_ranlib
6798 YASM = $_yasm
6799 YASMFLAGS = $YASMFLAGS
6801 CONFIG_VDPAU = $_vdpau
6802 CONFIG_ZLIB = $_zlib
6804 HAVE_PTHREADS = $_pthreads
6805 HAVE_SHM = $_shm
6806 HAVE_W32THREADS = $_w32threads
6807 HAVE_YASM = $have_yasm
6811 #############################################################################
6813 ff_config_enable () {
6814 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6815 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6816 _nprefix=$3;
6817 test -z "$_nprefix" && _nprefix='CONFIG'
6818 for part in $list; do
6819 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6820 echo "#define ${_nprefix}_$part 1"
6821 else
6822 echo "#define ${_nprefix}_$part 0"
6824 done
6827 echo "Creating config.h"
6828 cat > $TMPH << EOF
6829 /*----------------------------------------------------------------------------
6830 ** This file has been automatically generated by configure any changes in it
6831 ** will be lost when you run configure again.
6832 ** Instead of modifying definitions here, use the --enable/--disable options
6833 ** of the configure script! See ./configure --help for details.
6834 *---------------------------------------------------------------------------*/
6836 #ifndef MPLAYER_CONFIG_H
6837 #define MPLAYER_CONFIG_H
6839 /* Undefine this if you do not want to select mono audio (left or right)
6840 with a stereo MPEG layer 2/3 audio stream. The command line option
6841 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6842 right-only), with 0 being the default.
6844 #define CONFIG_FAKE_MONO 1
6846 /* set up audio OUTBURST. Do not change this! */
6847 #define OUTBURST 512
6849 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6850 #undef FAST_OSD
6851 #undef FAST_OSD_TABLE
6855 #define CONFIGURATION "$configuration"
6857 #define MPLAYER_DATADIR "$_datadir"
6858 #define MPLAYER_CONFDIR "$_confdir"
6859 #define MPLAYER_LOCALEDIR "$_localedir"
6861 $def_translation
6863 /* definitions needed by included libraries */
6864 #define HAVE_INTTYPES_H 1
6865 /* libdvdcss */
6866 #define HAVE_ERRNO_H 1
6867 /* libdvdcss + libdvdread */
6868 #define HAVE_LIMITS_H 1
6869 /* libdvdcss */
6870 #define HAVE_UNISTD_H 1
6871 /* libdvdread */
6872 #define STDC_HEADERS 1
6873 #define HAVE_MEMCPY 1
6874 /* libdvdnav */
6875 #define READ_CACHE_TRACE 0
6876 /* libdvdread */
6877 #define HAVE_DLFCN_H 1
6878 $def_dvdcss
6881 /* system headers */
6882 $def_alloca_h
6883 $def_alsa_asoundlib_h
6884 $def_altivec_h
6885 $def_malloc_h
6886 $def_mman_h
6887 $def_mman_has_map_failed
6888 $def_soundcard_h
6889 $def_sys_asoundlib_h
6890 $def_sys_soundcard_h
6891 $def_sys_sysinfo_h
6892 $def_sys_videoio_h
6893 $def_termios_h
6894 $def_termios_sys_h
6895 $def_winsock2_h
6898 /* system functions */
6899 $def_gethostbyname2
6900 $def_gettimeofday
6901 $def_glob
6902 $def_langinfo
6903 $def_lrintf
6904 $def_map_memalign
6905 $def_memalign
6906 $def_nanosleep
6907 $def_posix_select
6908 $def_select
6909 $def_setenv
6910 $def_setmode
6911 $def_shm
6912 $def_strsep
6913 $def_swab
6914 $def_sysi86
6915 $def_sysi86_iv
6916 $def_termcap
6917 $def_termios
6918 $def_vsscanf
6921 /* system-specific features */
6922 $def_asmalign_pot
6923 $def_builtin_expect
6924 $def_dl
6925 $def_dos_paths
6926 $def_extern_asm
6927 $def_extern_prefix
6928 $def_iconv
6929 $def_kstat
6930 $def_macosx_bundle
6931 $def_macosx_finder
6932 $def_priority
6933 $def_quicktime
6934 $def_restrict_keyword
6935 $def_rtc
6936 $def_unrar_exec
6939 /* configurable options */
6940 $def_charset
6941 $def_crash_debug
6942 $def_debug
6943 $def_fastmemcpy
6944 $def_runtime_cpudetection
6945 $def_sighandler
6946 $def_sortsub
6947 $def_stream_cache
6948 $def_pthread_cache
6951 /* CPU stuff */
6952 #define __CPU__ $iproc
6953 $def_ebx_available
6954 $def_words_endian
6955 $def_bigendian
6956 $(ff_config_enable "$arch_all" "$arch" "ARCH")
6957 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
6958 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
6961 /* Blu-ray/DVD/VCD/CD */
6962 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
6963 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
6964 $def_bluray
6965 $def_bsdi_dvd
6966 $def_cddb
6967 $def_cdio
6968 $def_cdparanoia
6969 $def_cdrom
6970 $def_dvd
6971 $def_dvd_bsd
6972 $def_dvd_darwin
6973 $def_dvd_linux
6974 $def_dvd_openbsd
6975 $def_dvdio
6976 $def_dvdnav
6977 $def_dvdread
6978 $def_hpux_scsi_h
6979 $def_libcdio
6980 $def_sol_scsi_h
6981 $def_vcd
6984 /* codec libraries */
6985 $def_faad
6986 $def_liba52
6987 $def_libdca
6988 $def_libdv
6989 $def_mad
6990 $def_mpg123
6991 $def_musepack
6992 $def_speex
6993 $def_theora
6994 $def_tremor
6995 $def_vorbis
6996 $def_xvid
6997 $def_zlib
6999 $def_libnut
7002 /* binary codecs */
7003 $def_qtx
7004 $def_qtx_win32
7005 $def_real
7006 $def_win32_loader
7007 $def_win32dll
7008 $def_xanim
7009 $def_xmms
7010 #define BINARY_CODECS_PATH "$_codecsdir"
7011 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7014 /* Audio output drivers */
7015 $def_alsa
7016 $def_alsa1x
7017 $def_alsa5
7018 $def_alsa9
7019 $def_arts
7020 $def_coreaudio
7021 $def_dart
7022 $def_esd
7023 $def_esd_latency
7024 $def_jack
7025 $def_kai
7026 $def_nas
7027 $def_openal
7028 $def_openal_h
7029 $def_ossaudio
7030 $def_ossaudio_devdsp
7031 $def_ossaudio_devmixer
7032 $def_pulse
7033 $def_rsound
7034 $def_sgiaudio
7035 $def_sunaudio
7036 $def_win32waveout
7038 $def_ladspa
7039 $def_libbs2b
7042 /* input */
7043 $def_apple_ir
7044 $def_apple_remote
7045 $def_ioctl_bt848_h_name
7046 $def_ioctl_meteor_h_name
7047 $def_joystick
7048 $def_lirc
7049 $def_lircc
7050 $def_pvr
7051 $def_radio
7052 $def_radio_bsdbt848
7053 $def_radio_capture
7054 $def_radio_v4l
7055 $def_radio_v4l2
7056 $def_tv
7057 $def_tv_bsdbt848
7058 $def_tv_dshow
7059 $def_tv_v4l
7060 $def_tv_v4l1
7061 $def_tv_v4l2
7064 /* font stuff */
7065 $def_ass
7066 $def_bitmap_font
7067 $def_enca
7068 $def_fontconfig
7069 $def_freetype
7070 $def_fribidi
7073 /* networking */
7074 $def_closesocket
7075 $def_ftp
7076 $def_inet6
7077 $def_inet_aton
7078 $def_inet_pton
7079 $def_live
7080 $def_nemesi
7081 $def_networking
7082 $def_smb
7083 $def_socklen_t
7084 $def_vstream
7087 /* libvo options */
7088 $def_3dfx
7089 $def_aa
7090 $def_bl
7091 $def_caca
7092 $def_corevideo
7093 $def_dga
7094 $def_dga1
7095 $def_dga2
7096 $def_direct3d
7097 $def_directfb
7098 $def_directx
7099 $def_dvb
7100 $def_dvbin
7101 $def_dxr3
7102 $def_fbdev
7103 $def_ggi
7104 $def_ggiwmh
7105 $def_gif
7106 $def_gif_4
7107 $def_gif_tvt_hack
7108 $def_gl
7109 $def_gl_cocoa
7110 $def_gl_win32
7111 $def_gl_x11
7112 $def_gl_sdl
7113 $def_ivtv
7114 $def_jpeg
7115 $def_kva
7116 $def_md5sum
7117 $def_mga
7118 $def_mng
7119 $def_png
7120 $def_pnm
7121 $def_quartz
7122 $def_s3fb
7123 $def_sdl
7124 $def_sdl_sdl_h
7125 $def_svga
7126 $def_tdfxfb
7127 $def_tdfxvid
7128 $def_tga
7129 $def_v4l2
7130 $def_vdpau
7131 $def_vesa
7132 $def_vm
7133 $def_wii
7134 $def_x11
7135 $def_xdpms
7136 $def_xf86keysym
7137 $def_xinerama
7138 $def_xmga
7139 $def_xss
7140 $def_xv
7141 $def_xvr100
7142 $def_yuv4mpeg
7145 /* FFmpeg */
7146 $def_ffmpeg_eval_api
7147 $def_ffmpeg_internals
7149 $def_arpa_inet_h
7150 $def_bswap
7151 $def_dcbzl
7152 $def_exp2
7153 $def_exp2f
7154 $def_fast_64bit
7155 $def_fast_unaligned
7156 $def_llrint
7157 $def_log2
7158 $def_log2f
7159 $def_lrint
7160 $def_memalign_hack
7161 $def_mkstemp
7162 $def_posix_memalign
7163 $def_pthreads
7164 $def_round
7165 $def_roundf
7166 $def_threads
7167 $def_truncf
7168 $def_xform_asm
7169 $def_yasm
7171 #define HAVE_INLINE_ASM 1
7173 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7174 #ifndef MP_DEBUG
7175 #define HAVE_EBP_AVAILABLE 1
7176 #else
7177 #define HAVE_EBP_AVAILABLE 0
7178 #endif
7180 #endif /* MPLAYER_CONFIG_H */
7183 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7184 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
7186 #############################################################################
7188 cat << EOF
7190 Config files successfully generated by ./configure $configuration !
7192 Install prefix: $_prefix
7193 Data directory: $_datadir
7194 Config direct.: $_confdir
7196 Byte order: $_byte_order
7197 Optimizing for: $_optimizing
7199 Languages:
7200 Messages (in addition to English): $language_msg
7201 Manual pages: $language_man
7202 Documentation: $language_doc
7204 Enabled optional drivers:
7205 Input: $inputmodules
7206 Codecs: $codecmodules
7207 Audio output: $aomodules
7208 Video output: $vomodules
7210 Disabled optional drivers:
7211 Input: $noinputmodules
7212 Codecs: $nocodecmodules
7213 Audio output: $noaomodules
7214 Video output: $novomodules
7216 'config.h' and 'config.mak' contain your configuration options.
7217 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7218 compile *** DO NOT REPORT BUGS if you tweak these files ***
7220 'make' will now compile MPlayer and 'make install' will install it.
7221 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7226 if test "$_mtrr" = yes ; then
7227 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7228 echo
7231 if ! x86_32; then
7232 cat <<EOF
7233 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7234 operating system ($system_name). You may encounter a few files that cannot
7235 be played due to missing open source video/audio codec support.
7241 cat <<EOF
7242 Check $TMPLOG if you wonder why an autodetection failed (make sure
7243 development headers/packages are installed).
7245 NOTE: The --enable-* parameters unconditionally force options on, completely
7246 skipping autodetection. This behavior is unlike what you may be used to from
7247 autoconf-based configure scripts that can decide to override you. This greater
7248 level of control comes at a price. You may have to provide the correct compiler
7249 and linker flags yourself.
7250 If you used one of these options (except --enable-runtime-cpudetection and
7251 similar ones that turn on internal features) and experience a compilation or
7252 linking failure, make sure you have passed the necessary compiler/linker flags
7253 to configure.
7255 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7259 if test "$warn_cflags" = yes; then
7260 cat <<EOF
7262 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7263 but:
7265 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7267 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7268 To do so, execute 'CFLAGS= ./configure <options>'
7273 # Last move:
7274 rm -rf "$mplayer_tmpdir"