build: change version number generation
[mplayer.git] / configure
blob57caa24a58ad31f66fd65d0e8cf7c74ff3d412a5
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, look at the existing checks
23 # and try to use helper functions where you can.
25 # Furthermore you need to add the variable _feature to the list of default
26 # settings and set it to one of yes/no/auto. Also add appropriate
27 # --enable-feature/--disable-feature command line options.
28 # The results of the check should be written to config.h and config.mak
29 # at the end of this script. The variable names used for this should be
30 # uniform, i.e. if the option is named 'feature':
32 # _feature : should have a value of yes/no/auto
33 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
34 # _ld_feature : '-L/path/dir -lfeature' GCC options
36 #############################################################################
38 # Prevent locale nonsense from breaking basic text processing utils
39 export LC_ALL=C
41 # Store the configure line that was used
42 configuration="$*"
44 # Prefer these macros to full length text !
45 # These macros only return an error code - NO display is done
46 compile_check() {
47 source="$1"
48 shift
49 echo >> "$TMPLOG"
50 cat "$source" >> "$TMPLOG"
51 echo >> "$TMPLOG"
52 echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG"
53 rm -f "$TMPEXE"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
55 TMPRES="$?"
56 echo >> "$TMPLOG"
57 echo >> "$TMPLOG"
58 return "$TMPRES"
61 cc_check() {
62 compile_check $TMPC $@
65 cxx_check() {
66 compile_check $TMPCPP $@ -lstdc++
69 cflag_check() {
70 cat > $TMPC << EOF
71 int main(void) { return 0; }
72 EOF
73 compile_check $TMPC $@
76 header_check() {
77 cat > $TMPC << EOF
78 #include <$1>
79 int main(void) { return 0; }
80 EOF
81 shift
82 compile_check $TMPC $@
85 return_check() {
86 cat > $TMPC << EOF
87 #include <$1>
88 int main(void) { return $2; }
89 EOF
90 shift 2
91 compile_check $TMPC $@
94 statement_check() {
95 cat > $TMPC << EOF
96 #include <$1>
97 int main(void) { $2; return 0; }
98 EOF
99 shift
100 shift
101 compile_check $TMPC $@
104 define_statement_check() {
105 cat > $TMPC << EOF
106 #define $1
107 #include <$2>
108 int main(void) { $3; return 0; }
110 shift 3
111 compile_check $TMPC $@
114 return_statement_check() {
115 cat > $TMPC << EOF
116 #include <$1>
117 int main(void) { $2; return $3; }
119 shift 3
120 compile_check $TMPC $@
123 inline_asm_check() {
124 cat > $TMPC << EOF
125 int main(void) { __asm__ volatile ($1); return 0; }
127 shift
128 compile_check $TMPC $@
131 # The following checks are special and should only be used with broken and
132 # non-selfsufficient headers that do not include all of their dependencies.
134 header_check_broken() {
135 cat > $TMPC << EOF
136 #include <$1>
137 #include <$2>
138 int main(void) { return 0; }
140 shift
141 shift
142 compile_check $TMPC $@
145 statement_check_broken() {
146 cat > $TMPC << EOF
147 #include <$1>
148 #include <$2>
149 int main(void) { $3; return 0; }
151 shift 3
152 compile_check $TMPC $@
155 yasm_check() {
156 echo >> "$TMPLOG"
157 cat "$TMPS" >> "$TMPLOG"
158 echo >> "$TMPLOG"
159 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
160 rm -f "$TMPEXE"
161 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
162 TMPRES="$?"
163 echo >> "$TMPLOG"
164 echo >> "$TMPLOG"
165 return "$TMPRES"
168 tmp_run() {
169 "$TMPEXE" >> "$TMPLOG" 2>&1
172 # Display error message, flushes tempfile, exit
173 die () {
174 echo
175 echo "Error: $@" >&2
176 echo >&2
177 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
178 echo "Check \"$TMPLOG\" if you do not understand why it failed."
179 exit 1
182 # OS test booleans functions
183 issystem() {
184 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
186 aix() { issystem "AIX"; }
187 amigaos() { issystem "AmigaOS"; }
188 beos() { issystem "BEOS"; }
189 bsdos() { issystem "BSD/OS"; }
190 cygwin() { issystem "CYGWIN"; }
191 darwin() { issystem "Darwin"; }
192 dragonfly() { issystem "DragonFly"; }
193 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
194 gnu() { issystem "GNU"; }
195 hpux() { issystem "HP-UX"; }
196 irix() { issystem "IRIX"; }
197 linux() { issystem "Linux"; }
198 mingw32() { issystem "MINGW32"; }
199 morphos() { issystem "MorphOS"; }
200 netbsd() { issystem "NetBSD"; }
201 openbsd() { issystem "OpenBSD"; }
202 os2() { issystem "OS/2"; }
203 qnx() { issystem "QNX"; }
204 sunos() { issystem "SunOS"; }
205 win32() { cygwin || mingw32; }
207 # arch test boolean functions
208 # x86/x86pc is used by QNX
209 x86_32() {
210 case "$host_arch" in
211 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
212 *) return 1 ;;
213 esac
216 x86_64() {
217 case "$host_arch" in
218 x86_64|amd64) return 0 ;;
219 *) return 1 ;;
220 esac
223 x86() {
224 x86_32 || x86_64
227 ppc() {
228 case "$host_arch" in
229 ppc|ppc64|powerpc|powerpc64) return 0;;
230 *) return 1;;
231 esac
234 alpha() {
235 case "$host_arch" in
236 alpha*) return 0;;
237 *) return 1;;
238 esac
241 arm() {
242 case "$host_arch" in
243 arm*) return 0;;
244 *) return 1;;
245 esac
248 # Use this before starting a check
249 echocheck() {
250 echo "============ Checking for $@ ============" >> "$TMPLOG"
251 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
254 # Use this to echo the results of a check
255 echores() {
256 if test "$res_comment" ; then
257 res_comment="($res_comment)"
259 echo "Result is: $@ $res_comment" >> "$TMPLOG"
260 echo "##########################################" >> "$TMPLOG"
261 echo "" >> "$TMPLOG"
262 echo "$@ $res_comment"
263 res_comment=""
265 #############################################################################
267 # Check how echo works in this /bin/sh
268 case $(echo -n) in
269 -n) _echo_n= _echo_c='\c' ;; # SysV echo
270 *) _echo_n='-n ' _echo_c= ;; # BSD echo
271 esac
273 msg_lang_all=''
274 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
275 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
276 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
278 show_help(){
279 cat << EOF
280 Usage: $0 [OPTIONS]...
282 Configuration:
283 -h, --help display this help and exit
285 Installation directories:
286 --prefix=DIR prefix directory for installation [/usr/local]
287 --bindir=DIR directory for installing binaries [PREFIX/bin]
288 --datadir=DIR directory for installing machine independent
289 data files (skins, etc) [PREFIX/share/mplayer]
290 --mandir=DIR directory for installing man pages [PREFIX/share/man]
291 --confdir=DIR directory for installing configuration files
292 [PREFIX/etc/mplayer]
293 --localedir=DIR directory for locale tree [PREFIX/share/locale]
294 --libdir=DIR directory for object code libraries [PREFIX/lib]
295 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
297 Optional features:
298 --disable-mplayer disable MPlayer compilation [enable]
299 --disable-largefiles disable support for files > 2GB [enable]
300 --enable-termcap use termcap database for key codes [autodetect]
301 --enable-termios use termios database for key codes [autodetect]
302 --disable-iconv disable iconv for encoding conversion [autodetect]
303 --disable-langinfo do not use langinfo [autodetect]
304 --enable-lirc enable LIRC (remote control) support [autodetect]
305 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
306 --enable-joystick enable joystick support [disable]
307 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
308 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
309 --disable-vm disable X video mode extensions [autodetect]
310 --disable-xf86keysym disable support for multimedia keys [autodetect]
311 --enable-radio enable radio interface [disable]
312 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
313 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
314 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
315 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
316 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
317 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
318 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
319 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
320 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
321 --disable-networking disable networking [enable]
322 --enable-winsock2_h enable winsock2_h [autodetect]
323 --enable-smb enable Samba (SMB) input [autodetect]
324 --enable-live enable LIVE555 Streaming Media [autodetect]
325 --enable-nemesi enable Nemesi Streaming Media [autodetect]
326 --disable-vcd disable VCD support [autodetect]
327 --disable-bluray disable Blu-ray support [autodetect]
328 --disable-dvdnav disable libdvdnav [autodetect]
329 --disable-dvdread disable libdvdread [autodetect]
330 --disable-dvdread-internal disable internal libdvdread [autodetect]
331 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
332 --disable-cdparanoia disable cdparanoia [autodetect]
333 --disable-cddb disable cddb [autodetect]
334 --disable-bitmap-font disable bitmap font support [enable]
335 --disable-freetype disable FreeType 2 font rendering [autodetect]
336 --disable-fontconfig disable fontconfig font lookup [autodetect]
337 --disable-unrarexec disable using of UnRAR executable [enabled]
338 --enable-menu enable OSD menu (not DVD menu) [disabled]
339 --disable-sortsub disable subtitle sorting [enabled]
340 --enable-fribidi enable the FriBiDi libs [autodetect]
341 --disable-enca disable ENCA charset oracle library [autodetect]
342 --enable-macosx-finder enable Mac OS X Finder invocation parameter
343 parsing [disabled]
344 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
345 --disable-inet6 disable IPv6 support [autodetect]
346 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
347 --disable-ftp disable FTP support [enabled]
348 --disable-vstream disable TiVo vstream client support [autodetect]
349 --disable-pthreads disable Posix threads support [autodetect]
350 --disable-w32threads disable Win32 threads support [autodetect]
351 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
352 --enable-rpath enable runtime linker path for extra libs [disabled]
354 Codecs:
355 --enable-gif enable GIF support [autodetect]
356 --enable-png enable PNG input/output support [autodetect]
357 --enable-mng enable MNG input support [autodetect]
358 --enable-jpeg enable JPEG input/output support [autodetect]
359 --enable-libcdio enable libcdio support [autodetect]
360 --disable-win32dll disable Win32 DLL support [autodetect]
361 --disable-qtx disable QuickTime codecs support [enabled]
362 --disable-xanim disable XAnim codecs support [enabled]
363 --disable-real disable RealPlayer codecs support [enabled]
364 --disable-xvid disable Xvid [autodetect]
365 --disable-libnut disable libnut [autodetect]
366 --disable-ffmpeg disable FFmpeg [autodetect]
367 --disable-libvorbis disable libvorbis support [autodetect]
368 --disable-tremor disable Tremor [autodetect if no libvorbis]
369 --disable-speex disable Speex support [autodetect]
370 --enable-theora enable OggTheora libraries [autodetect]
371 --enable-faad enable FAAD2 (AAC) [autodetect]
372 --disable-ladspa disable LADSPA plugin support [autodetect]
373 --disable-libbs2b disable libbs2b audio filter support [autodetect]
374 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
375 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
376 --disable-mad disable libmad (MPEG audio) support [autodetect]
377 --enable-xmms enable XMMS input plugin support [disabled]
378 --enable-libdca enable libdca support [autodetect]
379 --disable-mp3lib disable builtin mp3lib [autodetect]
380 --disable-liba52 disable liba52 [autodetect]
381 --enable-musepack enable libmpcdec support (deprecated, libavcodec
382 Musepack decoder is preferred) [disabled]
384 Video output:
385 --enable-gl enable OpenGL video output [autodetect]
386 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
387 --enable-dga2 enable DGA 2 support [autodetect]
388 --enable-dga1 enable DGA 1 support [autodetect]
389 --enable-vesa enable VESA video output [autodetect]
390 --enable-svga enable SVGAlib video output [autodetect]
391 --enable-sdl enable SDL video output [autodetect]
392 --enable-kva enable KVA video output [autodetect]
393 --enable-aa enable AAlib video output [autodetect]
394 --enable-caca enable CACA video output [autodetect]
395 --enable-ggi enable GGI video output [autodetect]
396 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
397 --enable-direct3d enable Direct3D video output [autodetect]
398 --enable-directx enable DirectX video output [autodetect]
399 --enable-dxr3 enable DXR3/H+ video output [autodetect]
400 --enable-ivtv enable IVTV TV-Out video output [autodetect]
401 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
402 --enable-dvb enable DVB video output [autodetect]
403 --enable-mga enable mga_vid video output [autodetect]
404 --enable-xmga enable mga_vid X11 video output [autodetect]
405 --enable-xv enable Xv video output [autodetect]
406 --enable-xvmc enable XvMC acceleration [disable]
407 --enable-vdpau enable VDPAU acceleration [autodetect]
408 --enable-vm enable XF86VidMode support [autodetect]
409 --enable-xinerama enable Xinerama support [autodetect]
410 --enable-x11 enable X11 video output [autodetect]
411 --enable-xshape enable XShape support [autodetect]
412 --disable-xss disable screensaver support via xss [autodetect]
413 --enable-fbdev enable FBDev video output [autodetect]
414 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
415 --enable-tdfxfb enable tdfxfb video output [disable]
416 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
417 --enable-wii enable Nintendo Wii/GameCube video output [disable]
418 --enable-directfb enable DirectFB video output [autodetect]
419 --enable-bl enable Blinkenlights video output [disable]
420 --enable-tdfxvid enable tdfx_vid video output [disable]
421 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
422 --disable-tga disable Targa video output [enable]
423 --disable-pnm disable PNM video output [enable]
424 --disable-md5sum disable md5sum video output [enable]
425 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
426 --disable-corevideo disable CoreVideo video output [autodetect]
427 --disable-quartz disable Quartz video output [autodetect]
429 Audio output:
430 --disable-alsa disable ALSA audio output [autodetect]
431 --disable-ossaudio disable OSS audio output [autodetect]
432 --disable-arts disable aRts audio output [autodetect]
433 --disable-esd disable esd audio output [autodetect]
434 --disable-pulse disable Pulseaudio audio output [autodetect]
435 --disable-jack disable JACK audio output [autodetect]
436 --enable-openal enable OpenAL audio output [disable]
437 --disable-nas disable NAS audio output [autodetect]
438 --disable-sgiaudio disable SGI audio output [autodetect]
439 --disable-sunaudio disable Sun audio output [autodetect]
440 --disable-kai disable KAI audio output [autodetect]
441 --disable-dart disable DART audio output [autodetect]
442 --disable-win32waveout disable Windows waveout audio output [autodetect]
443 --disable-coreaudio disable CoreAudio audio output [autodetect]
444 --disable-select disable using select() on the audio device [enable]
446 Language options:
447 --enable-translation enable support for translated output [disable]
448 --charset=charset convert the console messages to this character set
449 --language-doc=lang language to use for the documentation [en]
450 --language-man=lang language to use for the man pages [en]
451 --language-msg=lang extra languages for program messages [all]
452 --language=lang default language to use [en]
453 Specific options override --language. You can pass a list of languages separated
454 by whitespace or commas instead of a single language. Nonexisting translations
455 will be dropped from each list. All translations available in the list will be
456 installed. The value "all" will activate all translations. The LINGUAS
457 environment variable is honored. In all cases the fallback is English.
458 The program always supports English-language output; additional message
459 languages are only installed if --enable-translation is also specified.
460 Available values for --language-doc are: all $doc_lang_all
461 Available values for --language-man are: all $man_lang_all
462 Available values for --language-msg are: all $msg_lang_all
464 Miscellaneous options:
465 --enable-runtime-cpudetection enable runtime CPU detection [disable]
466 --enable-cross-compile enable cross-compilation [autodetect]
467 --cc=COMPILER C compiler to build MPlayer [gcc]
468 --host-cc=COMPILER C compiler for tools needed while building [gcc]
469 --as=ASSEMBLER assembler to build MPlayer [as]
470 --nm=NM nm tool to build MPlayer [nm]
471 --yasm=YASM Yasm assembler to build MPlayer [yasm]
472 --ar=AR librarian to build MPlayer [ar]
473 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
474 --windres=WINDRES windres to build MPlayer [windres]
475 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
476 --enable-static build a statically linked binary
477 --with-install=PATH path to a custom install program
479 Advanced options:
480 --enable-mmx enable MMX [autodetect]
481 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
482 --enable-3dnow enable 3DNow! [autodetect]
483 --enable-3dnowext enable extended 3DNow! [autodetect]
484 --enable-sse enable SSE [autodetect]
485 --enable-sse2 enable SSE2 [autodetect]
486 --enable-ssse3 enable SSSE3 [autodetect]
487 --enable-shm enable shm [autodetect]
488 --enable-altivec enable AltiVec (PowerPC) [autodetect]
489 --enable-armv5te enable DSP extensions (ARM) [autodetect]
490 --enable-armv6 enable ARMv6 (ARM) [autodetect]
491 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
492 --enable-armvfp enable ARM VFP (ARM) [autodetect]
493 --enable-neon enable NEON (ARM) [autodetect]
494 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
495 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
496 --enable-big-endian force byte order to big-endian [autodetect]
497 --enable-debug[=1-3] compile-in debugging information [disable]
498 --enable-profile compile-in profiling information [disable]
499 --disable-sighandler disable sighandler for crashes [enable]
500 --enable-crash-debug enable automatic gdb attach on crash [disable]
501 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
502 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
504 Use these options if autodetection fails:
505 --extra-cflags=FLAGS extra CFLAGS
506 --extra-ldflags=FLAGS extra LDFLAGS
507 --extra-libs=FLAGS extra linker flags
508 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
509 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
511 --with-freetype-config=PATH path to freetype-config
512 --with-glib-config=PATH path to glib*-config
513 --with-gtk-config=PATH path to gtk*-config
514 --with-sdl-config=PATH path to sdl*-config
515 --with-dvdnav-config=PATH path to dvdnav-config
516 --with-dvdread-config=PATH path to dvdread-config
518 This configure script is NOT autoconf-based, even though its output is similar.
519 It will try to autodetect all configuration options. If you --enable an option
520 it will be forcefully turned on, skipping autodetection. This can break
521 compilation, so you need to know what you are doing.
523 exit 0
524 } #show_help()
526 # GOTCHA: the variables below defines the default behavior for autodetection
527 # and have - unless stated otherwise - at least 2 states : yes no
528 # If autodetection is available then the third state is: auto
529 _mmx=auto
530 _3dnow=auto
531 _3dnowext=auto
532 _mmxext=auto
533 _sse=auto
534 _sse2=auto
535 _ssse3=auto
536 _cmov=auto
537 _fast_cmov=auto
538 _fast_clz=auto
539 _armv5te=auto
540 _armv6=auto
541 _armv6t2=auto
542 _armvfp=auto
543 neon=auto
544 _iwmmxt=auto
545 _mtrr=auto
546 _altivec=auto
547 _install=install
548 _ranlib=ranlib
549 _windres=windres
550 _cc=cc
551 _ar=ar
552 test "$CC" && _cc="$CC"
553 _as=auto
554 _nm=auto
555 _yasm=yasm
556 _runtime_cpudetection=no
557 _cross_compile=auto
558 _prefix="/usr/local"
559 ffmpeg=auto
560 ffmpeg_internals=no
561 _mplayer=yes
562 _x11=auto
563 _xshape=auto
564 _xss=auto
565 _dga1=auto
566 _dga2=auto
567 _xv=auto
568 _xvmc=no #auto when complete
569 _vdpau=auto
570 _sdl=auto
571 _kva=auto
572 _direct3d=auto
573 _directx=auto
574 _win32waveout=auto
575 _nas=auto
576 _png=auto
577 _mng=auto
578 _jpeg=auto
579 _pnm=yes
580 _md5sum=yes
581 _yuv4mpeg=yes
582 _gif=auto
583 _gl=auto
584 matrixview=yes
585 _ggi=auto
586 _ggiwmh=auto
587 _aa=auto
588 _caca=auto
589 _svga=auto
590 _vesa=auto
591 _fbdev=auto
592 _dvb=auto
593 _dxr3=auto
594 _ivtv=auto
595 _v4l2=auto
596 _iconv=auto
597 _langinfo=auto
598 _rtc=auto
599 _ossaudio=auto
600 _arts=auto
601 _esd=auto
602 _pulse=auto
603 _jack=auto
604 _kai=auto
605 _dart=auto
606 _openal=no
607 _libcdio=auto
608 _mad=auto
609 _tremor=auto
610 _libvorbis=auto
611 _speex=auto
612 _theora=auto
613 _mpg123=auto
614 _mp3lib=auto
615 _liba52=auto
616 _libdca=auto
617 _faad=auto
618 _ladspa=auto
619 _libbs2b=auto
620 _xmms=no
621 _vcd=auto
622 _bluray=auto
623 _dvdnav=auto
624 _dvdnavconfig=dvdnav-config
625 _dvdreadconfig=dvdread-config
626 _dvdread=auto
627 _dvdread_internal=auto
628 _libdvdcss_internal=auto
629 _xanim=auto
630 _real=auto
631 _live=auto
632 _nemesi=auto
633 _native_rtsp=yes
634 _xinerama=auto
635 _mga=auto
636 _xmga=auto
637 _vm=auto
638 _xf86keysym=auto
639 _sgiaudio=auto
640 _sunaudio=auto
641 _alsa=auto
642 _fastmemcpy=yes
643 _unrar_exec=auto
644 _win32dll=auto
645 _select=yes
646 _radio=no
647 _radio_capture=no
648 _radio_v4l=auto
649 _radio_v4l2=auto
650 _radio_bsdbt848=auto
651 _tv=yes
652 _tv_v4l1=auto
653 _tv_v4l2=auto
654 _tv_bsdbt848=auto
655 _tv_dshow=auto
656 _pvr=auto
657 networking=yes
658 _winsock2_h=auto
659 _smb=auto
660 _joystick=no
661 _xvid=auto
662 _libnut=auto
663 _lirc=auto
664 _lircc=auto
665 _apple_remote=auto
666 _apple_ir=auto
667 _gui=no
668 _gtk1=no
669 _termcap=auto
670 _termios=auto
671 _3dfx=no
672 _s3fb=no
673 _wii=no
674 _tdfxfb=no
675 _tdfxvid=no
676 _xvr100=auto
677 _tga=yes
678 _directfb=auto
679 _bl=no
680 _largefiles=yes
681 #language=en
682 _shm=auto
683 _translation=no
684 _charset="UTF-8"
685 _dynamic_plugins=no
686 _crash_debug=no
687 _sighandler=yes
688 _libdv=auto
689 _cdparanoia=auto
690 _cddb=auto
691 _big_endian=auto
692 _bitmap_font=yes
693 _freetype=auto
694 _fontconfig=auto
695 _menu=no
696 _qtx=auto
697 _coreaudio=auto
698 _corevideo=auto
699 _quartz=auto
700 quicktime=auto
701 _macosx_finder=no
702 _macosx_bundle=auto
703 _sortsub=yes
704 _freetypeconfig='freetype-config'
705 _fribidi=auto
706 _enca=auto
707 _inet6=auto
708 _gethostbyname2=auto
709 _ftp=auto
710 _musepack=no
711 _vstream=auto
712 _pthreads=auto
713 _w32threads=auto
714 _ass=auto
715 _rpath=no
716 _asmalign_pot=auto
717 _stream_cache=yes
718 _priority=no
719 def_dos_paths="#define HAVE_DOS_PATHS 0"
720 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
721 def_priority="#undef CONFIG_PRIORITY"
722 def_pthread_cache="#undef PTHREAD_CACHE"
723 need_shmem=yes
724 for ac_option do
725 case "$ac_option" in
726 --help|-help|-h)
727 show_help
729 --prefix=*)
730 _prefix=$(echo $ac_option | cut -d '=' -f 2)
732 --bindir=*)
733 _bindir=$(echo $ac_option | cut -d '=' -f 2)
735 --datadir=*)
736 _datadir=$(echo $ac_option | cut -d '=' -f 2)
738 --mandir=*)
739 _mandir=$(echo $ac_option | cut -d '=' -f 2)
741 --confdir=*)
742 _confdir=$(echo $ac_option | cut -d '=' -f 2)
744 --libdir=*)
745 _libdir=$(echo $ac_option | cut -d '=' -f 2)
747 --codecsdir=*)
748 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
750 --localedir=*)
751 _localedir=$(echo $ac_option | cut -d '=' -f 2)
754 --with-install=*)
755 _install=$(echo $ac_option | cut -d '=' -f 2 )
757 --with-xvmclib=*)
758 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
761 --with-sdl-config=*)
762 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
764 --with-freetype-config=*)
765 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
767 --with-gtk-config=*)
768 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
770 --with-glib-config=*)
771 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
773 --with-dvdnav-config=*)
774 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
776 --with-dvdread-config=*)
777 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
780 --extra-cflags=*)
781 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
783 --extra-ldflags=*)
784 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
786 --extra-libs=*)
787 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
789 --extra-libs-mplayer=*)
790 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
793 --target=*)
794 _target=$(echo $ac_option | cut -d '=' -f 2)
796 --cc=*)
797 _cc=$(echo $ac_option | cut -d '=' -f 2)
799 --host-cc=*)
800 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
802 --as=*)
803 _as=$(echo $ac_option | cut -d '=' -f 2)
805 --nm=*)
806 _nm=$(echo $ac_option | cut -d '=' -f 2)
808 --yasm=*)
809 _yasm=$(echo $ac_option | cut -d '=' -f 2)
811 --ar=*)
812 _ar=$(echo $ac_option | cut -d '=' -f 2)
814 --ranlib=*)
815 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
817 --windres=*)
818 _windres=$(echo $ac_option | cut -d '=' -f 2)
820 --charset=*)
821 _charset=$(echo $ac_option | cut -d '=' -f 2)
823 --language-doc=*)
824 language_doc=$(echo $ac_option | cut -d '=' -f 2)
826 --language-man=*)
827 language_man=$(echo $ac_option | cut -d '=' -f 2)
829 --language-msg=*)
830 language_msg=$(echo $ac_option | cut -d '=' -f 2)
832 --language=*)
833 language=$(echo $ac_option | cut -d '=' -f 2)
836 --enable-static)
837 _ld_static='-static'
839 --disable-static)
840 _ld_static=''
842 --enable-profile)
843 _profile='-p'
845 --disable-profile)
846 _profile=
848 --enable-debug)
849 _debug='-g'
851 --enable-debug=*)
852 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
854 --disable-debug)
855 _debug=
857 --enable-translation) _translation=yes ;;
858 --disable-translation) _translation=no ;;
859 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
860 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
861 --enable-cross-compile) _cross_compile=yes ;;
862 --disable-cross-compile) _cross_compile=no ;;
863 --enable-mplayer) _mplayer=yes ;;
864 --disable-mplayer) _mplayer=no ;;
865 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
866 --disable-dynamic-plugins) _dynamic_plugins=no ;;
867 --enable-x11) _x11=yes ;;
868 --disable-x11) _x11=no ;;
869 --enable-xshape) _xshape=yes ;;
870 --disable-xshape) _xshape=no ;;
871 --enable-xss) _xss=yes ;;
872 --disable-xss) _xss=no ;;
873 --enable-xv) _xv=yes ;;
874 --disable-xv) _xv=no ;;
875 --enable-xvmc) _xvmc=yes ;;
876 --disable-xvmc) _xvmc=no ;;
877 --enable-vdpau) _vdpau=yes ;;
878 --disable-vdpau) _vdpau=no ;;
879 --enable-sdl) _sdl=yes ;;
880 --disable-sdl) _sdl=no ;;
881 --enable-kva) _kva=yes ;;
882 --disable-kva) _kva=no ;;
883 --enable-direct3d) _direct3d=yes ;;
884 --disable-direct3d) _direct3d=no ;;
885 --enable-directx) _directx=yes ;;
886 --disable-directx) _directx=no ;;
887 --enable-win32waveout) _win32waveout=yes ;;
888 --disable-win32waveout) _win32waveout=no ;;
889 --enable-nas) _nas=yes ;;
890 --disable-nas) _nas=no ;;
891 --enable-png) _png=yes ;;
892 --disable-png) _png=no ;;
893 --enable-mng) _mng=yes ;;
894 --disable-mng) _mng=no ;;
895 --enable-jpeg) _jpeg=yes ;;
896 --disable-jpeg) _jpeg=no ;;
897 --enable-pnm) _pnm=yes ;;
898 --disable-pnm) _pnm=no ;;
899 --enable-md5sum) _md5sum=yes ;;
900 --disable-md5sum) _md5sum=no ;;
901 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
902 --disable-yuv4mpeg) _yuv4mpeg=no ;;
903 --enable-gif) _gif=yes ;;
904 --disable-gif) _gif=no ;;
905 --enable-gl) _gl=yes ;;
906 --disable-gl) _gl=no ;;
907 --enable-matrixview) matrixview=yes ;;
908 --disable-matrixview) matrixview=no ;;
909 --enable-ggi) _ggi=yes ;;
910 --disable-ggi) _ggi=no ;;
911 --enable-ggiwmh) _ggiwmh=yes ;;
912 --disable-ggiwmh) _ggiwmh=no ;;
913 --enable-aa) _aa=yes ;;
914 --disable-aa) _aa=no ;;
915 --enable-caca) _caca=yes ;;
916 --disable-caca) _caca=no ;;
917 --enable-svga) _svga=yes ;;
918 --disable-svga) _svga=no ;;
919 --enable-vesa) _vesa=yes ;;
920 --disable-vesa) _vesa=no ;;
921 --enable-fbdev) _fbdev=yes ;;
922 --disable-fbdev) _fbdev=no ;;
923 --enable-dvb) _dvb=yes ;;
924 --disable-dvb) _dvb=no ;;
925 --enable-dxr3) _dxr3=yes ;;
926 --disable-dxr3) _dxr3=no ;;
927 --enable-ivtv) _ivtv=yes ;;
928 --disable-ivtv) _ivtv=no ;;
929 --enable-v4l2) _v4l2=yes ;;
930 --disable-v4l2) _v4l2=no ;;
931 --enable-iconv) _iconv=yes ;;
932 --disable-iconv) _iconv=no ;;
933 --enable-langinfo) _langinfo=yes ;;
934 --disable-langinfo) _langinfo=no ;;
935 --enable-rtc) _rtc=yes ;;
936 --disable-rtc) _rtc=no ;;
937 --enable-libdv) _libdv=yes ;;
938 --disable-libdv) _libdv=no ;;
939 --enable-ossaudio) _ossaudio=yes ;;
940 --disable-ossaudio) _ossaudio=no ;;
941 --enable-arts) _arts=yes ;;
942 --disable-arts) _arts=no ;;
943 --enable-esd) _esd=yes ;;
944 --disable-esd) _esd=no ;;
945 --enable-pulse) _pulse=yes ;;
946 --disable-pulse) _pulse=no ;;
947 --enable-jack) _jack=yes ;;
948 --disable-jack) _jack=no ;;
949 --enable-openal) _openal=yes ;;
950 --disable-openal) _openal=no ;;
951 --enable-kai) _kai=yes ;;
952 --disable-kai) _kai=no ;;
953 --enable-dart) _dart=yes ;;
954 --disable-dart) _dart=no ;;
955 --enable-mad) _mad=yes ;;
956 --disable-mad) _mad=no ;;
957 --enable-libcdio) _libcdio=yes ;;
958 --disable-libcdio) _libcdio=no ;;
959 --enable-libvorbis) _libvorbis=yes ;;
960 --disable-libvorbis) _libvorbis=no ;;
961 --enable-speex) _speex=yes ;;
962 --disable-speex) _speex=no ;;
963 --enable-tremor) _tremor=yes ;;
964 --disable-tremor) _tremor=no ;;
965 --enable-theora) _theora=yes ;;
966 --disable-theora) _theora=no ;;
967 --enable-mpg123) _mpg123=yes ;;
968 --disable-mpg123) _mpg123=no ;;
969 --enable-mp3lib) _mp3lib=yes ;;
970 --disable-mp3lib) _mp3lib=no ;;
971 --enable-liba52) _liba52=yes ;;
972 --disable-liba52) _liba52=no ;;
973 --enable-libdca) _libdca=yes ;;
974 --disable-libdca) _libdca=no ;;
975 --enable-musepack) _musepack=yes ;;
976 --disable-musepack) _musepack=no ;;
977 --enable-faad) _faad=yes ;;
978 --disable-faad) _faad=no ;;
979 --enable-ladspa) _ladspa=yes ;;
980 --disable-ladspa) _ladspa=no ;;
981 --enable-libbs2b) _libbs2b=yes ;;
982 --disable-libbs2b) _libbs2b=no ;;
983 --enable-xmms) _xmms=yes ;;
984 --disable-xmms) _xmms=no ;;
985 --enable-vcd) _vcd=yes ;;
986 --disable-vcd) _vcd=no ;;
987 --enable-bluray) _bluray=yes ;;
988 --disable-bluray) _bluray=no ;;
989 --enable-dvdread) _dvdread=yes ;;
990 --disable-dvdread) _dvdread=no ;;
991 --enable-dvdread-internal) _dvdread_internal=yes ;;
992 --disable-dvdread-internal) _dvdread_internal=no ;;
993 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
994 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
995 --enable-dvdnav) _dvdnav=yes ;;
996 --disable-dvdnav) _dvdnav=no ;;
997 --enable-xanim) _xanim=yes ;;
998 --disable-xanim) _xanim=no ;;
999 --enable-real) _real=yes ;;
1000 --disable-real) _real=no ;;
1001 --enable-live) _live=yes ;;
1002 --disable-live) _live=no ;;
1003 --enable-nemesi) _nemesi=yes ;;
1004 --disable-nemesi) _nemesi=no ;;
1005 --enable-xinerama) _xinerama=yes ;;
1006 --disable-xinerama) _xinerama=no ;;
1007 --enable-mga) _mga=yes ;;
1008 --disable-mga) _mga=no ;;
1009 --enable-xmga) _xmga=yes ;;
1010 --disable-xmga) _xmga=no ;;
1011 --enable-vm) _vm=yes ;;
1012 --disable-vm) _vm=no ;;
1013 --enable-xf86keysym) _xf86keysym=yes ;;
1014 --disable-xf86keysym) _xf86keysym=no ;;
1015 --enable-sunaudio) _sunaudio=yes ;;
1016 --disable-sunaudio) _sunaudio=no ;;
1017 --enable-sgiaudio) _sgiaudio=yes ;;
1018 --disable-sgiaudio) _sgiaudio=no ;;
1019 --enable-alsa) _alsa=yes ;;
1020 --disable-alsa) _alsa=no ;;
1021 --enable-tv) _tv=yes ;;
1022 --disable-tv) _tv=no ;;
1023 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1024 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1025 --enable-tv-v4l1) _tv_v4l1=yes ;;
1026 --disable-tv-v4l1) _tv_v4l1=no ;;
1027 --enable-tv-v4l2) _tv_v4l2=yes ;;
1028 --disable-tv-v4l2) _tv_v4l2=no ;;
1029 --enable-tv-dshow) _tv_dshow=yes ;;
1030 --disable-tv-dshow) _tv_dshow=no ;;
1031 --enable-radio) _radio=yes ;;
1032 --enable-radio-capture) _radio_capture=yes ;;
1033 --disable-radio-capture) _radio_capture=no ;;
1034 --disable-radio) _radio=no ;;
1035 --enable-radio-v4l) _radio_v4l=yes ;;
1036 --disable-radio-v4l) _radio_v4l=no ;;
1037 --enable-radio-v4l2) _radio_v4l2=yes ;;
1038 --disable-radio-v4l2) _radio_v4l2=no ;;
1039 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1040 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1041 --enable-pvr) _pvr=yes ;;
1042 --disable-pvr) _pvr=no ;;
1043 --enable-fastmemcpy) _fastmemcpy=yes ;;
1044 --disable-fastmemcpy) _fastmemcpy=no ;;
1045 --enable-networking) networking=yes ;;
1046 --disable-networking) networking=no ;;
1047 --enable-winsock2_h) _winsock2_h=yes ;;
1048 --disable-winsock2_h) _winsock2_h=no ;;
1049 --enable-smb) _smb=yes ;;
1050 --disable-smb) _smb=no ;;
1051 --enable-joystick) _joystick=yes ;;
1052 --disable-joystick) _joystick=no ;;
1053 --enable-xvid) _xvid=yes ;;
1054 --disable-xvid) _xvid=no ;;
1055 --enable-libnut) _libnut=yes ;;
1056 --disable-libnut) _libnut=no ;;
1057 --enable-ffmpeg) ffmpeg=yes ;;
1058 --disable-ffmpeg) ffmpeg=no ;;
1059 --ffmpeg-source-dir=*)
1060 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1062 --enable-lirc) _lirc=yes ;;
1063 --disable-lirc) _lirc=no ;;
1064 --enable-lircc) _lircc=yes ;;
1065 --disable-lircc) _lircc=no ;;
1066 --enable-apple-remote) _apple_remote=yes ;;
1067 --disable-apple-remote) _apple_remote=no ;;
1068 --enable-apple-ir) _apple_ir=yes ;;
1069 --disable-apple-ir) _apple_ir=no ;;
1070 --enable-gui) _gui=yes ;;
1071 --disable-gui) _gui=no ;;
1072 --enable-gtk1) _gtk1=yes ;;
1073 --disable-gtk1) _gtk1=no ;;
1074 --enable-termcap) _termcap=yes ;;
1075 --disable-termcap) _termcap=no ;;
1076 --enable-termios) _termios=yes ;;
1077 --disable-termios) _termios=no ;;
1078 --enable-3dfx) _3dfx=yes ;;
1079 --disable-3dfx) _3dfx=no ;;
1080 --enable-s3fb) _s3fb=yes ;;
1081 --disable-s3fb) _s3fb=no ;;
1082 --enable-wii) _wii=yes ;;
1083 --disable-wii) _wii=no ;;
1084 --enable-tdfxfb) _tdfxfb=yes ;;
1085 --disable-tdfxfb) _tdfxfb=no ;;
1086 --disable-tdfxvid) _tdfxvid=no ;;
1087 --enable-tdfxvid) _tdfxvid=yes ;;
1088 --disable-xvr100) _xvr100=no ;;
1089 --enable-xvr100) _xvr100=yes ;;
1090 --disable-tga) _tga=no ;;
1091 --enable-tga) _tga=yes ;;
1092 --enable-directfb) _directfb=yes ;;
1093 --disable-directfb) _directfb=no ;;
1094 --enable-bl) _bl=yes ;;
1095 --disable-bl) _bl=no ;;
1096 --enable-mtrr) _mtrr=yes ;;
1097 --disable-mtrr) _mtrr=no ;;
1098 --enable-largefiles) _largefiles=yes ;;
1099 --disable-largefiles) _largefiles=no ;;
1100 --enable-shm) _shm=yes ;;
1101 --disable-shm) _shm=no ;;
1102 --enable-select) _select=yes ;;
1103 --disable-select) _select=no ;;
1104 --enable-cdparanoia) _cdparanoia=yes ;;
1105 --disable-cdparanoia) _cdparanoia=no ;;
1106 --enable-cddb) _cddb=yes ;;
1107 --disable-cddb) _cddb=no ;;
1108 --enable-big-endian) _big_endian=yes ;;
1109 --disable-big-endian) _big_endian=no ;;
1110 --enable-bitmap-font) _bitmap_font=yes ;;
1111 --disable-bitmap-font) _bitmap_font=no ;;
1112 --enable-freetype) _freetype=yes ;;
1113 --disable-freetype) _freetype=no ;;
1114 --enable-fontconfig) _fontconfig=yes ;;
1115 --disable-fontconfig) _fontconfig=no ;;
1116 --enable-unrarexec) _unrar_exec=yes ;;
1117 --disable-unrarexec) _unrar_exec=no ;;
1118 --enable-ftp) _ftp=yes ;;
1119 --disable-ftp) _ftp=no ;;
1120 --enable-vstream) _vstream=yes ;;
1121 --disable-vstream) _vstream=no ;;
1122 --enable-pthreads) _pthreads=yes ;;
1123 --disable-pthreads) _pthreads=no ;;
1124 --enable-w32threads) _w32threads=yes ;;
1125 --disable-w32threads) _w32threads=no ;;
1126 --enable-ass) _ass=yes ;;
1127 --disable-ass) _ass=no ;;
1128 --enable-rpath) _rpath=yes ;;
1129 --disable-rpath) _rpath=no ;;
1131 --enable-fribidi) _fribidi=yes ;;
1132 --disable-fribidi) _fribidi=no ;;
1134 --enable-enca) _enca=yes ;;
1135 --disable-enca) _enca=no ;;
1137 --enable-inet6) _inet6=yes ;;
1138 --disable-inet6) _inet6=no ;;
1140 --enable-gethostbyname2) _gethostbyname2=yes ;;
1141 --disable-gethostbyname2) _gethostbyname2=no ;;
1143 --enable-dga1) _dga1=yes ;;
1144 --disable-dga1) _dga1=no ;;
1145 --enable-dga2) _dga2=yes ;;
1146 --disable-dga2) _dga2=no ;;
1148 --enable-menu) _menu=yes ;;
1149 --disable-menu) _menu=no ;;
1151 --enable-qtx) _qtx=yes ;;
1152 --disable-qtx) _qtx=no ;;
1154 --enable-coreaudio) _coreaudio=yes ;;
1155 --disable-coreaudio) _coreaudio=no ;;
1156 --enable-corevideo) _corevideo=yes ;;
1157 --disable-corevideo) _corevideo=no ;;
1158 --enable-quartz) _quartz=yes ;;
1159 --disable-quartz) _quartz=no ;;
1160 --enable-macosx-finder) _macosx_finder=yes ;;
1161 --disable-macosx-finder) _macosx_finder=no ;;
1162 --enable-macosx-bundle) _macosx_bundle=yes ;;
1163 --disable-macosx-bundle) _macosx_bundle=no ;;
1165 --enable-sortsub) _sortsub=yes ;;
1166 --disable-sortsub) _sortsub=no ;;
1168 --enable-crash-debug) _crash_debug=yes ;;
1169 --disable-crash-debug) _crash_debug=no ;;
1170 --enable-sighandler) _sighandler=yes ;;
1171 --disable-sighandler) _sighandler=no ;;
1172 --enable-win32dll) _win32dll=yes ;;
1173 --disable-win32dll) _win32dll=no ;;
1175 --enable-sse) _sse=yes ;;
1176 --disable-sse) _sse=no ;;
1177 --enable-sse2) _sse2=yes ;;
1178 --disable-sse2) _sse2=no ;;
1179 --enable-ssse3) _ssse3=yes ;;
1180 --disable-ssse3) _ssse3=no ;;
1181 --enable-mmxext) _mmxext=yes ;;
1182 --disable-mmxext) _mmxext=no ;;
1183 --enable-3dnow) _3dnow=yes ;;
1184 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1185 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1186 --disable-3dnowext) _3dnowext=no ;;
1187 --enable-cmov) _cmov=yes ;;
1188 --disable-cmov) _cmov=no ;;
1189 --enable-fast-cmov) _fast_cmov=yes ;;
1190 --disable-fast-cmov) _fast_cmov=no ;;
1191 --enable-fast-clz) _fast_clz=yes ;;
1192 --disable-fast-clz) _fast_clz=no ;;
1193 --enable-altivec) _altivec=yes ;;
1194 --disable-altivec) _altivec=no ;;
1195 --enable-armv5te) _armv5te=yes ;;
1196 --disable-armv5te) _armv5te=no ;;
1197 --enable-armv6) _armv6=yes ;;
1198 --disable-armv6) _armv6=no ;;
1199 --enable-armv6t2) _armv6t2=yes ;;
1200 --disable-armv6t2) _armv6t2=no ;;
1201 --enable-armvfp) _armvfp=yes ;;
1202 --disable-armvfp) _armvfp=no ;;
1203 --enable-neon) neon=yes ;;
1204 --disable-neon) neon=no ;;
1205 --enable-iwmmxt) _iwmmxt=yes ;;
1206 --disable-iwmmxt) _iwmmxt=no ;;
1207 --enable-mmx) _mmx=yes ;;
1208 --disable-mmx) # 3Dnow! and MMX2 require MMX
1209 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1212 echo "Unknown parameter: $ac_option" >&2
1213 exit 1
1216 esac
1217 done
1219 if test "$_gui" = yes ; then
1220 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1221 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1224 # Atmos: moved this here, to be correct, if --prefix is specified
1225 test -z "$_bindir" && _bindir="$_prefix/bin"
1226 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1227 test -z "$_mandir" && _mandir="$_prefix/share/man"
1228 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1229 test -z "$_libdir" && _libdir="$_prefix/lib"
1230 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1232 # Determine our OS name and CPU architecture
1233 if test -z "$_target" ; then
1234 # OS name
1235 system_name=$(uname -s 2>&1)
1236 case "$system_name" in
1237 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1239 Haiku)
1240 system_name=BeOS
1242 IRIX*)
1243 system_name=IRIX
1245 GNU/kFreeBSD)
1246 system_name=FreeBSD
1248 HP-UX*)
1249 system_name=HP-UX
1251 [cC][yY][gG][wW][iI][nN]*)
1252 system_name=CYGWIN
1254 MINGW32*)
1255 system_name=MINGW32
1257 OS/2*)
1258 system_name=OS/2
1261 system_name="$system_name-UNKNOWN"
1263 esac
1266 # host's CPU/instruction set
1267 host_arch=$(uname -p 2>&1)
1268 case "$host_arch" in
1269 i386|sparc|ppc|alpha|arm|mips|vax)
1271 powerpc) # Darwin returns 'powerpc'
1272 host_arch=ppc
1274 *) # uname -p on Linux returns 'unknown' for the processor type,
1275 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1277 # Maybe uname -m (machine hardware name) returns something we
1278 # recognize.
1280 # x86/x86pc is used by QNX
1281 case "$(uname -m 2>&1)" in
1282 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 ;;
1283 ia64) host_arch=ia64 ;;
1284 macppc|ppc) host_arch=ppc ;;
1285 ppc64) host_arch=ppc64 ;;
1286 alpha) host_arch=alpha ;;
1287 sparc) host_arch=sparc ;;
1288 sparc64) host_arch=sparc64 ;;
1289 parisc*|hppa*|9000*) host_arch=hppa ;;
1290 arm*|zaurus|cats) host_arch=arm ;;
1291 sh3|sh4|sh4a) host_arch=sh ;;
1292 s390) host_arch=s390 ;;
1293 s390x) host_arch=s390x ;;
1294 *mips*) host_arch=mips ;;
1295 vax) host_arch=vax ;;
1296 xtensa*) host_arch=xtensa ;;
1297 *) host_arch=UNKNOWN ;;
1298 esac
1300 esac
1301 else # if test -z "$_target"
1302 system_name=$(echo $_target | cut -d '-' -f 2)
1303 case "$(echo $system_name | tr A-Z a-z)" in
1304 linux) system_name=Linux ;;
1305 freebsd) system_name=FreeBSD ;;
1306 gnu/kfreebsd) system_name=FreeBSD ;;
1307 netbsd) system_name=NetBSD ;;
1308 bsd/os) system_name=BSD/OS ;;
1309 openbsd) system_name=OpenBSD ;;
1310 dragonfly) system_name=DragonFly ;;
1311 sunos) system_name=SunOS ;;
1312 qnx) system_name=QNX ;;
1313 morphos) system_name=MorphOS ;;
1314 amigaos) system_name=AmigaOS ;;
1315 mingw32*) system_name=MINGW32 ;;
1316 esac
1317 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1318 host_arch=$(echo $_target | cut -d '-' -f 1)
1319 if test $(echo $host_arch) != "x86_64" ; then
1320 host_arch=$(echo $host_arch | tr '_' '-')
1324 extra_cflags="-I. $extra_cflags"
1325 _timer=timer-linux.c
1326 _getch=getch2.c
1327 if freebsd ; then
1328 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1329 extra_cflags="$extra_cflags -I/usr/local/include"
1332 if netbsd || dragonfly ; then
1333 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1334 extra_cflags="$extra_cflags -I/usr/pkg/include"
1337 if darwin; then
1338 extra_cflags="-mdynamic-no-pic $extra_cflags"
1339 if test "$(basename $_cc)" != "clang" ; then
1340 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1342 _timer=timer-darwin.c
1345 if aix ; then
1346 extra_ldflags="$extra_ldflags -lC"
1349 if irix ; then
1350 _ranlib='ar -r'
1351 elif linux ; then
1352 _ranlib='true'
1355 if win32 ; then
1356 _exesuf=".exe"
1357 extra_cflags="$extra_cflags -fno-common"
1358 # -lwinmm is always needed for osdep/timer-win2.c
1359 extra_ldflags="$extra_ldflags -lwinmm"
1360 _pe_executable=yes
1361 _timer=timer-win2.c
1362 _priority=yes
1363 def_dos_paths="#define HAVE_DOS_PATHS 1"
1364 def_priority="#define CONFIG_PRIORITY 1"
1367 if mingw32 ; then
1368 _getch=getch2-win.c
1369 need_shmem=no
1372 if amigaos ; then
1373 _select=no
1374 _sighandler=no
1375 _stream_cache=no
1376 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1377 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1380 if qnx ; then
1381 extra_ldflags="$extra_ldflags -lph"
1384 if os2 ; then
1385 _exesuf=".exe"
1386 _getch=getch2-os2.c
1387 need_shmem=no
1388 _priority=yes
1389 def_dos_paths="#define HAVE_DOS_PATHS 1"
1390 def_priority="#define CONFIG_PRIORITY 1"
1393 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1394 test "$tmpdir" && break
1395 done
1397 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1398 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1400 TMPLOG="config.log"
1401 TMPC="$mplayer_tmpdir/tmp.c"
1402 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1403 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1404 TMPH="$mplayer_tmpdir/tmp.h"
1405 TMPS="$mplayer_tmpdir/tmp.S"
1407 rm -f "$TMPLOG"
1408 echo configuration: $configuration > "$TMPLOG"
1409 echo >> "$TMPLOG"
1412 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1413 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1417 # Checking CC version...
1418 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1419 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1420 echocheck "$_cc version"
1421 cc_vendor=intel
1422 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1423 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1424 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1425 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1426 # TODO verify older icc/ecc compatibility
1427 case $cc_version in
1429 cc_version="v. ?.??, bad"
1430 cc_fail=yes
1432 10.1|11.0|11.1)
1433 cc_version="$cc_version, ok"
1436 cc_version="$cc_version, bad"
1437 cc_fail=yes
1439 esac
1440 echores "$cc_version"
1441 else
1442 for _cc in "$_cc" gcc cc ; do
1443 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1444 if test "$cc_name_tmp" = "gcc"; then
1445 cc_name=$cc_name_tmp
1446 echocheck "$_cc version"
1447 cc_vendor=gnu
1448 cc_version=$($_cc -dumpversion 2>&1)
1449 case $cc_version in
1450 2.96*)
1451 cc_fail=yes
1454 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1455 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1456 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1458 esac
1459 echores "$cc_version"
1460 break
1462 cc_name_tmp=$($_cc -v 2>&1 | head -n 1 | cut -d ' ' -f 1)
1463 if test "$cc_name_tmp" = "clang"; then
1464 echocheck "$_cc version"
1465 cc_vendor=clang
1466 cc_version=$($_cc -dumpversion 2>&1)
1467 res_comment="experimental support only"
1468 echores "clang $cc_version"
1469 break
1471 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1472 if test "$cc_name_tmp" = "Sun C"; then
1473 echocheck "$_cc version"
1474 cc_vendor=sun
1475 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1476 res_comment="experimental support only"
1477 echores "Sun C $cc_version"
1478 break
1480 done
1481 fi # icc
1482 test "$cc_fail" = yes && die "unsupported compiler version"
1484 if test -z "$_target" && x86 ; then
1485 cat > $TMPC << EOF
1486 int main(void) {
1487 int test[(int)sizeof(char *)-7];
1488 return 0;
1491 cc_check && host_arch=x86_64 || host_arch=i386
1494 echo "Detected operating system: $system_name"
1495 echo "Detected host architecture: $host_arch"
1497 echocheck "host cc"
1498 test "$_host_cc" || _host_cc=$_cc
1499 echores $_host_cc
1501 echocheck "cross compilation"
1502 if test $_cross_compile = auto ; then
1503 _cross_compile=yes
1504 cflag_check "" && "$TMPEXE" && _cross_compile=no
1506 echores $_cross_compile
1508 if test $_cross_compile = yes; then
1509 tmp_run() {
1510 return 0
1514 # ---
1516 # now that we know what compiler should be used for compilation, try to find
1517 # out which assembler is used by the $_cc compiler
1518 if test "$_as" = auto ; then
1519 _as=$($_cc -print-prog-name=as)
1520 test -z "$_as" && _as=as
1523 if test "$_nm" = auto ; then
1524 _nm=$($_cc -print-prog-name=nm)
1525 test -z "$_nm" && _nm=nm
1528 # XXX: this should be ok..
1529 _cpuinfo="echo"
1531 if test "$_runtime_cpudetection" = no ; then
1533 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1534 # FIXME: Remove the cygwin check once AMD CPUs are supported
1535 if test -r /proc/cpuinfo && ! cygwin; then
1536 # Linux with /proc mounted, extract CPU information from it
1537 _cpuinfo="cat /proc/cpuinfo"
1538 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1539 # FreeBSD with Linux emulation /proc mounted,
1540 # extract CPU information from it
1541 # Don't use it on x86 though, it never reports 3Dnow
1542 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1543 elif darwin && ! x86 ; then
1544 # use hostinfo on Darwin
1545 _cpuinfo="hostinfo"
1546 elif aix; then
1547 # use 'lsattr' on AIX
1548 _cpuinfo="lsattr -E -l proc0 -a type"
1549 elif x86; then
1550 # all other OSes try to extract CPU information from a small helper
1551 # program cpuinfo instead
1552 $_cc -o cpuinfo$_exesuf cpuinfo.c
1553 _cpuinfo="./cpuinfo$_exesuf"
1556 if x86 ; then
1557 # gather more CPU information
1558 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1559 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1560 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1561 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1562 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1564 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1566 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1567 -e s/xmm/sse/ -e s/kni/sse/)
1569 for ext in $pparam ; do
1570 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1571 done
1573 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1574 test $_sse = kernel_check && _mmxext=kernel_check
1576 echocheck "CPU vendor"
1577 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1579 echocheck "CPU type"
1580 echores "$pname"
1583 fi # test "$_runtime_cpudetection" = no
1585 if x86 && test "$_runtime_cpudetection" = no ; then
1586 extcheck() {
1587 if test "$1" = kernel_check ; then
1588 echocheck "kernel support of $2"
1589 cat > $TMPC <<EOF
1590 #include <stdlib.h>
1591 #include <signal.h>
1592 static void catch(int sig) { exit(1); }
1593 int main(void) {
1594 signal(SIGILL, catch);
1595 __asm__ volatile ("$3":::"memory"); return 0;
1599 if cc_check && tmp_run ; then
1600 eval _$2=yes
1601 echores "yes"
1602 _optimizing="$_optimizing $2"
1603 return 0
1604 else
1605 eval _$2=no
1606 echores "failed"
1607 echo "It seems that your kernel does not correctly support $2."
1608 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1609 return 1
1612 return 0
1615 extcheck $_mmx "mmx" "emms"
1616 extcheck $_mmxext "mmxext" "sfence"
1617 extcheck $_3dnow "3dnow" "femms"
1618 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1619 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1620 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1621 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1622 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1624 echocheck "mtrr support"
1625 if test "$_mtrr" = kernel_check ; then
1626 _mtrr="yes"
1627 _optimizing="$_optimizing mtrr"
1629 echores "$_mtrr"
1631 if test "$_gcc3_ext" != ""; then
1632 # if we had to disable sse/sse2 because the active kernel does not
1633 # support this instruction set extension, we also have to tell
1634 # gcc3 to not generate sse/sse2 instructions for normal C code
1635 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1641 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1642 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1643 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1644 subarch_all='X86_32 X86_64 PPC64'
1645 case "$host_arch" in
1646 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1647 arch='x86'
1648 subarch='x86_32'
1649 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1650 iproc=486
1651 proc=i486
1654 if test "$_runtime_cpudetection" = no ; then
1655 case "$pvendor" in
1656 AuthenticAMD)
1657 case "$pfamily" in
1658 3) proc=i386 iproc=386 ;;
1659 4) proc=i486 iproc=486 ;;
1660 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1661 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1662 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1663 proc=k6-3
1664 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1665 proc=geode
1666 elif test "$pmodel" -ge 8; then
1667 proc=k6-2
1668 elif test "$pmodel" -ge 6; then
1669 proc=k6
1670 else
1671 proc=i586
1674 6) iproc=686
1675 # It's a bit difficult to determine the correct type of Family 6
1676 # AMD CPUs just from their signature. Instead, we check directly
1677 # whether it supports SSE.
1678 if test "$_sse" = yes; then
1679 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1680 proc=athlon-xp
1681 else
1682 # Again, gcc treats athlon and athlon-tbird similarly.
1683 proc=athlon
1686 15) iproc=686
1687 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1688 # caught and remedied in the optimization tests below.
1689 proc=k8
1692 *) proc=amdfam10 iproc=686
1693 test $_fast_clz = "auto" && _fast_clz=yes
1695 esac
1697 GenuineIntel)
1698 case "$pfamily" in
1699 3) proc=i386 iproc=386 ;;
1700 4) proc=i486 iproc=486 ;;
1701 5) iproc=586
1702 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1703 proc=pentium-mmx # 4 is desktop, 8 is mobile
1704 else
1705 proc=i586
1708 6) iproc=686
1709 if test "$pmodel" -ge 15; then
1710 proc=core2
1711 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1712 proc=pentium-m
1713 elif test "$pmodel" -ge 7; then
1714 proc=pentium3
1715 elif test "$pmodel" -ge 3; then
1716 proc=pentium2
1717 else
1718 proc=i686
1720 test $_fast_clz = "auto" && _fast_clz=yes
1722 15) iproc=686
1723 # A nocona in 32-bit mode has no more capabilities than a prescott.
1724 if test "$pmodel" -ge 3; then
1725 proc=prescott
1726 else
1727 proc=pentium4
1728 test $_fast_clz = "auto" && _fast_clz=yes
1730 test $_fast_cmov = "auto" && _fast_cmov=no
1732 *) proc=prescott iproc=686 ;;
1733 esac
1735 CentaurHauls)
1736 case "$pfamily" in
1737 5) iproc=586
1738 if test "$pmodel" -ge 8; then
1739 proc=winchip2
1740 elif test "$pmodel" -ge 4; then
1741 proc=winchip-c6
1742 else
1743 proc=i586
1746 6) iproc=686
1747 if test "$pmodel" -ge 9; then
1748 proc=c3-2
1749 else
1750 proc=c3
1751 iproc=586
1754 *) proc=i686 iproc=i686 ;;
1755 esac
1757 unknown)
1758 case "$pfamily" in
1759 3) proc=i386 iproc=386 ;;
1760 4) proc=i486 iproc=486 ;;
1761 *) proc=i586 iproc=586 ;;
1762 esac
1765 proc=i586 iproc=586 ;;
1766 esac
1767 test $_fast_clz = "auto" && _fast_clz=no
1768 fi # test "$_runtime_cpudetection" = no
1771 # check that gcc supports our CPU, if not, fall back to earlier ones
1772 # LGB: check -mcpu and -march swithing step by step with enabling
1773 # to fall back till 386.
1775 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1777 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1778 cpuopt=-mtune
1779 else
1780 cpuopt=-mcpu
1783 echocheck "GCC & CPU optimization abilities"
1784 if test "$_runtime_cpudetection" = no ; then
1785 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1786 cflag_check -march=native && proc=native
1788 if test "$proc" = "amdfam10"; then
1789 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1791 if test "$proc" = "k8"; then
1792 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1794 if test "$proc" = "athlon-xp"; then
1795 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1797 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1798 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1800 if test "$proc" = "k6" || test "$proc" = "c3"; then
1801 if ! cflag_check -march=$proc $cpuopt=$proc; then
1802 if cflag_check -march=i586 $cpuopt=i686; then
1803 proc=i586-i686
1804 else
1805 proc=i586
1809 if test "$proc" = "prescott" ; then
1810 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1812 if test "$proc" = "core2" ; then
1813 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1815 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
1816 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1818 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1819 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1821 if test "$proc" = "i586"; then
1822 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1824 if test "$proc" = "i486" ; then
1825 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1827 if test "$proc" = "i386" ; then
1828 cflag_check -march=$proc $cpuopt=$proc || proc=error
1830 if test "$proc" = "error" ; then
1831 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1832 _mcpu=""
1833 _march=""
1834 _optimizing=""
1835 elif test "$proc" = "i586-i686"; then
1836 _march="-march=i586"
1837 _mcpu="$cpuopt=i686"
1838 _optimizing="$proc"
1839 else
1840 _march="-march=$proc"
1841 _mcpu="$cpuopt=$proc"
1842 _optimizing="$proc"
1844 else # if test "$_runtime_cpudetection" = no
1845 _mcpu="$cpuopt=generic"
1846 # at least i486 required, for bswap instruction
1847 _march="-march=i486"
1848 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1849 cflag_check $_mcpu || _mcpu=""
1850 cflag_check $_march $_mcpu || _march=""
1853 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1854 ## autodetected mcpu/march parameters
1855 if test "$_target" ; then
1856 # TODO: it may be a good idea to check GCC and fall back in all cases
1857 if test "$host_arch" = "i586-i686"; then
1858 _march="-march=i586"
1859 _mcpu="$cpuopt=i686"
1860 else
1861 _march="-march=$host_arch"
1862 _mcpu="$cpuopt=$host_arch"
1865 proc="$host_arch"
1867 case "$proc" in
1868 i386) iproc=386 ;;
1869 i486) iproc=486 ;;
1870 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1871 i686|athlon*|pentium*) iproc=686 ;;
1872 *) iproc=586 ;;
1873 esac
1876 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1877 _fast_cmov="yes"
1878 else
1879 _fast_cmov="no"
1881 test $_fast_clz = "auto" && _fast_clz=yes
1883 echores "$proc"
1886 ia64)
1887 arch='ia64'
1888 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1889 iproc='ia64'
1892 x86_64|amd64)
1893 arch='x86'
1894 subarch='x86_64'
1895 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1896 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1897 iproc='x86_64'
1899 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1900 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1901 cpuopt=-mtune
1902 else
1903 cpuopt=-mcpu
1905 if test "$_runtime_cpudetection" = no ; then
1906 case "$pvendor" in
1907 AuthenticAMD)
1908 case "$pfamily" in
1909 15) proc=k8
1910 test $_fast_clz = "auto" && _fast_clz=no
1912 *) proc=amdfam10;;
1913 esac
1915 GenuineIntel)
1916 case "$pfamily" in
1917 6) proc=core2;;
1919 # 64-bit prescotts exist, but as far as GCC is concerned they
1920 # have the same capabilities as a nocona.
1921 proc=nocona
1922 test $_fast_cmov = "auto" && _fast_cmov=no
1923 test $_fast_clz = "auto" && _fast_clz=no
1925 esac
1928 proc=error;;
1929 esac
1930 fi # test "$_runtime_cpudetection" = no
1932 echocheck "GCC & CPU optimization abilities"
1933 # This is a stripped-down version of the i386 fallback.
1934 if test "$_runtime_cpudetection" = no ; then
1935 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1936 cflag_check -march=native && proc=native
1938 # --- AMD processors ---
1939 if test "$proc" = "amdfam10"; then
1940 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1942 if test "$proc" = "k8"; then
1943 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1945 # This will fail if gcc version < 3.3, which is ok because earlier
1946 # versions don't really support 64-bit on amd64.
1947 # Is this a valid assumption? -Corey
1948 if test "$proc" = "athlon-xp"; then
1949 cflag_check -march=$proc $cpuopt=$proc || proc=error
1951 # --- Intel processors ---
1952 if test "$proc" = "core2"; then
1953 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
1955 if test "$proc" = "x86-64"; then
1956 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
1958 if test "$proc" = "nocona"; then
1959 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1961 if test "$proc" = "pentium4"; then
1962 cflag_check -march=$proc $cpuopt=$proc || proc=error
1965 _march="-march=$proc"
1966 _mcpu="$cpuopt=$proc"
1967 if test "$proc" = "error" ; then
1968 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1969 _mcpu=""
1970 _march=""
1972 else # if test "$_runtime_cpudetection" = no
1973 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1974 _march="-march=x86-64"
1975 _mcpu="$cpuopt=generic"
1976 cflag_check $_mcpu || _mcpu="x86-64"
1977 cflag_check $_mcpu || _mcpu=""
1978 cflag_check $_march $_mcpu || _march=""
1981 _optimizing="$proc"
1982 test $_fast_cmov = "auto" && _fast_cmov=yes
1983 test $_fast_clz = "auto" && _fast_clz=yes
1985 echores "$proc"
1988 sparc|sparc64)
1989 arch='sparc'
1990 iproc='sparc'
1991 if test "$host_arch" = "sparc64" ; then
1992 _vis='yes'
1993 proc='ultrasparc'
1994 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1995 elif sunos ; then
1996 echocheck "CPU type"
1997 karch=$(uname -m)
1998 case "$(echo $karch)" in
1999 sun4) proc=v7 ;;
2000 sun4c) proc=v7 ;;
2001 sun4d) proc=v8 ;;
2002 sun4m) proc=v8 ;;
2003 sun4u) proc=ultrasparc _vis='yes' ;;
2004 sun4v) proc=v9 ;;
2005 *) proc=v8 ;;
2006 esac
2007 echores "$proc"
2008 else
2009 proc=v8
2011 _mcpu="-mcpu=$proc"
2012 _optimizing="$proc"
2015 arm*)
2016 arch='arm'
2017 iproc='arm'
2020 avr32)
2021 arch='avr32'
2022 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2023 iproc='avr32'
2024 test $_fast_clz = "auto" && _fast_clz=yes
2027 sh|sh4)
2028 arch='sh4'
2029 iproc='sh4'
2032 ppc|ppc64|powerpc|powerpc64)
2033 arch='ppc'
2034 def_dcbzl='#define HAVE_DCBZL 0'
2035 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2036 iproc='ppc'
2038 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2039 subarch='ppc64'
2040 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2042 echocheck "CPU type"
2043 case $system_name in
2044 Linux)
2045 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2046 if test -n "$($_cpuinfo | grep altivec)"; then
2047 test $_altivec = auto && _altivec=yes
2050 Darwin)
2051 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2052 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2053 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2054 test $_altivec = auto && _altivec=yes
2057 NetBSD)
2058 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2059 case $cc_version in
2060 2*|3.0*|3.1*|3.2*|3.3*)
2063 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2064 test $_altivec = auto && _altivec=yes
2067 esac
2069 AIX)
2070 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2072 esac
2073 if test "$_altivec" = yes; then
2074 echores "$proc altivec"
2075 else
2076 _altivec=no
2077 echores "$proc"
2080 echocheck "GCC & CPU optimization abilities"
2082 if test -n "$proc"; then
2083 case "$proc" in
2084 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2085 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2086 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2087 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2088 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2089 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2090 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2091 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2092 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2093 *) ;;
2094 esac
2095 # gcc 3.1(.1) and up supports 7400 and 7450
2096 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2097 case "$proc" in
2098 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2099 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2100 *) ;;
2101 esac
2103 # gcc 3.2 and up supports 970
2104 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2105 case "$proc" in
2106 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2107 def_dcbzl='#define HAVE_DCBZL 1' ;;
2108 *) ;;
2109 esac
2111 # gcc 3.3 and up supports POWER4
2112 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2113 case "$proc" in
2114 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2115 *) ;;
2116 esac
2118 # gcc 3.4 and up supports 440*
2119 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2120 case "$proc" in
2121 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2122 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2123 *) ;;
2124 esac
2126 # gcc 4.0 and up supports POWER5
2127 if test "$_cc_major" -ge "4"; then
2128 case "$proc" in
2129 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2130 *) ;;
2131 esac
2135 if test -n "$_mcpu"; then
2136 _optimizing=$(echo $_mcpu | cut -c 8-)
2137 echores "$_optimizing"
2138 else
2139 echores "none"
2142 test $_fast_clz = "auto" && _fast_clz=yes
2146 alpha*)
2147 arch='alpha'
2148 iproc='alpha'
2149 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2151 echocheck "CPU type"
2152 cat > $TMPC << EOF
2153 int main(void) {
2154 unsigned long ver, mask;
2155 __asm__ ("implver %0" : "=r" (ver));
2156 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2157 printf("%ld-%x\n", ver, ~mask);
2158 return 0;
2161 $_cc -o "$TMPEXE" "$TMPC"
2162 case $("$TMPEXE") in
2164 0-0) proc="ev4"; _mvi="0";;
2165 1-0) proc="ev5"; _mvi="0";;
2166 1-1) proc="ev56"; _mvi="0";;
2167 1-101) proc="pca56"; _mvi="1";;
2168 2-303) proc="ev6"; _mvi="1";;
2169 2-307) proc="ev67"; _mvi="1";;
2170 2-1307) proc="ev68"; _mvi="1";;
2171 esac
2172 echores "$proc"
2174 echocheck "GCC & CPU optimization abilities"
2175 if test "$proc" = "ev68" ; then
2176 cc_check -mcpu=$proc || proc=ev67
2178 if test "$proc" = "ev67" ; then
2179 cc_check -mcpu=$proc || proc=ev6
2181 _mcpu="-mcpu=$proc"
2182 echores "$proc"
2184 test $_fast_clz = "auto" && _fast_clz=yes
2186 _optimizing="$proc"
2189 mips*)
2190 arch='mips'
2191 iproc='mips'
2193 if irix ; then
2194 echocheck "CPU type"
2195 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2196 case "$(echo $proc)" in
2197 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2198 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2199 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2200 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2201 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2202 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2203 esac
2204 # gcc < 3.x does not support -mtune.
2205 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2206 _mcpu=''
2208 echores "$proc"
2211 test $_fast_clz = "auto" && _fast_clz=yes
2215 hppa)
2216 arch='pa_risc'
2217 iproc='PA-RISC'
2220 s390)
2221 arch='s390'
2222 iproc='390'
2225 s390x)
2226 arch='s390x'
2227 iproc='390x'
2230 vax)
2231 arch='vax'
2232 iproc='vax'
2235 xtensa)
2236 arch='xtensa'
2237 iproc='xtensa'
2240 generic)
2241 arch='generic'
2245 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2246 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2247 die "unsupported architecture $host_arch"
2249 esac # case "$host_arch" in
2251 if test "$_runtime_cpudetection" = yes ; then
2252 if x86 ; then
2253 test "$_cmov" != no && _cmov=yes
2254 x86_32 && _cmov=no
2255 test "$_mmx" != no && _mmx=yes
2256 test "$_3dnow" != no && _3dnow=yes
2257 test "$_3dnowext" != no && _3dnowext=yes
2258 test "$_mmxext" != no && _mmxext=yes
2259 test "$_sse" != no && _sse=yes
2260 test "$_sse2" != no && _sse2=yes
2261 test "$_ssse3" != no && _ssse3=yes
2262 test "$_mtrr" != no && _mtrr=yes
2264 if ppc; then
2265 _altivec=yes
2270 # endian testing
2271 echocheck "byte order"
2272 if test "$_big_endian" = auto ; then
2273 cat > $TMPC <<EOF
2274 short ascii_name[] = {
2275 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2276 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2277 int main(void) { return (long)ascii_name; }
2279 if cc_check ; then
2280 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2281 _big_endian=yes
2282 else
2283 _big_endian=no
2285 else
2286 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2289 if test "$_big_endian" = yes ; then
2290 _byte_order='big-endian'
2291 def_words_endian='#define WORDS_BIGENDIAN 1'
2292 def_bigendian='#define HAVE_BIGENDIAN 1'
2293 else
2294 _byte_order='little-endian'
2295 def_words_endian='#undef WORDS_BIGENDIAN'
2296 def_bigendian='#define HAVE_BIGENDIAN 0'
2298 echores "$_byte_order"
2301 echocheck "extern symbol prefix"
2302 cat > $TMPC << EOF
2303 int ff_extern;
2305 cc_check -c || die "Symbol mangling check failed."
2306 sym=$($_nm -P -g $TMPEXE)
2307 extern_prefix=${sym%%ff_extern*}
2308 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2309 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2310 echores $extern_prefix
2313 echocheck "assembler support of -pipe option"
2314 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2315 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2318 echocheck "compiler support of named assembler arguments"
2319 _named_asm_args=yes
2320 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2321 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2322 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2323 _named_asm_args=no
2324 def_named_asm_args="#undef NAMED_ASM_ARGS"
2326 echores $_named_asm_args
2329 if darwin && test "$cc_vendor" = "gnu" ; then
2330 echocheck "GCC support of -mstackrealign"
2331 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2332 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2333 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2334 # wrong code with this flag, but this can be worked around by adding
2335 # -fno-unit-at-a-time as described in the blog post at
2336 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2337 cat > $TMPC << EOF
2338 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2339 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2341 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2342 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time &&
2343 tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2344 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2345 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2348 # Checking for CFLAGS
2349 _install_strip="-s"
2350 if test "$_profile" != "" || test "$_debug" != "" ; then
2351 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2352 WARNFLAGS="-W -Wall"
2353 _install_strip=
2354 elif test -z "$CFLAGS" ; then
2355 if test "$cc_vendor" = "intel" ; then
2356 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2357 WARNFLAGS="-wd167 -wd556 -wd144"
2358 elif test "$cc_vendor" = "sun" ; then
2359 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2360 elif test "$cc_vendor" = "clang"; then
2361 CFLAGS="-O2 $_march $_pipe"
2362 elif test "$cc_vendor" != "gnu" ; then
2363 CFLAGS="-O2 $_march $_mcpu $_pipe"
2364 else
2365 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2366 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2367 extra_ldflags="$extra_ldflags -ffast-math"
2369 else
2370 warn_cflags=yes
2373 if test "$cc_vendor" = "gnu" ; then
2374 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2375 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2376 # that's the only variable specific to C now, and this option is not valid
2377 # for C++.
2378 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2379 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2380 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2381 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2382 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2383 else
2384 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2387 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2388 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2391 if test -n "$LDFLAGS" ; then
2392 extra_ldflags="$extra_ldflags $LDFLAGS"
2393 warn_cflags=yes
2394 elif test "$cc_vendor" = "intel" ; then
2395 extra_ldflags="$extra_ldflags -i-static"
2397 if test -n "$CPPFLAGS" ; then
2398 extra_cflags="$extra_cflags $CPPFLAGS"
2399 warn_cflags=yes
2404 if x86_32 ; then
2405 # Checking assembler (_as) compatibility...
2406 # Added workaround for older as that reads from stdin by default - atmos
2407 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2408 echocheck "assembler ($_as $as_version)"
2410 _pref_as_version='2.9.1'
2411 echo 'nop' > $TMPS
2412 if test "$_mmx" = yes ; then
2413 echo 'emms' >> $TMPS
2415 if test "$_3dnow" = yes ; then
2416 _pref_as_version='2.10.1'
2417 echo 'femms' >> $TMPS
2419 if test "$_3dnowext" = yes ; then
2420 _pref_as_version='2.10.1'
2421 echo 'pswapd %mm0, %mm0' >> $TMPS
2423 if test "$_mmxext" = yes ; then
2424 _pref_as_version='2.10.1'
2425 echo 'movntq %mm0, (%eax)' >> $TMPS
2427 if test "$_sse" = yes ; then
2428 _pref_as_version='2.10.1'
2429 echo 'xorps %xmm0, %xmm0' >> $TMPS
2431 #if test "$_sse2" = yes ; then
2432 # _pref_as_version='2.11'
2433 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2435 if test "$_cmov" = yes ; then
2436 _pref_as_version='2.10.1'
2437 echo 'cmovb %eax, %ebx' >> $TMPS
2439 if test "$_ssse3" = yes ; then
2440 _pref_as_version='2.16.92'
2441 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2443 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2445 if test "$as_verc_fail" != yes ; then
2446 echores "ok"
2447 else
2448 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2449 echores "failed"
2450 die "obsolete binutils version"
2453 fi #if x86_32
2456 echocheck "PIC"
2457 pic=no
2458 cat > $TMPC << EOF
2459 int main(void) {
2460 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2461 #error PIC not enabled
2462 #endif
2463 return 0;
2466 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2467 echores $pic
2470 if x86 ; then
2472 echocheck ".align is a power of two"
2473 if test "$_asmalign_pot" = auto ; then
2474 _asmalign_pot=no
2475 inline_asm_check '".align 3"' && _asmalign_pot=yes
2477 if test "$_asmalign_pot" = "yes" ; then
2478 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2479 else
2480 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2482 echores $_asmalign_pot
2485 echocheck "10 assembler operands"
2486 ten_operands=no
2487 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2488 cat > $TMPC << EOF
2489 int main(void) {
2490 int x=0;
2491 __asm__ volatile(
2493 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2495 return 0;
2498 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2499 echores $ten_operands
2501 echocheck "ebx availability"
2502 ebx_available=no
2503 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2504 cat > $TMPC << EOF
2505 int main(void) {
2506 int x;
2507 __asm__ volatile(
2508 "xor %0, %0"
2509 :"=b"(x)
2510 // just adding ebx to clobber list seems unreliable with some
2511 // compilers, e.g. Haiku's gcc 2.95
2513 // and the above check does not work for OSX 64 bit...
2514 __asm__ volatile("":::"%ebx");
2515 return 0;
2518 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2519 echores $ebx_available
2522 echocheck "yasm"
2523 if test -z "$YASMFLAGS" ; then
2524 if darwin ; then
2525 x86_64 && objformat="macho64" || objformat="macho"
2526 elif win32 ; then
2527 objformat="win32"
2528 else
2529 objformat="elf"
2531 # currently tested for Linux x86, x86_64
2532 YASMFLAGS="-f $objformat"
2533 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2534 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2535 case "$objformat" in
2536 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2537 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2538 esac
2539 else
2540 warn_cflags=yes
2543 echo "pabsw xmm0, xmm0" > $TMPS
2544 yasm_check || _yasm=""
2545 if test $_yasm ; then
2546 def_yasm='#define HAVE_YASM 1'
2547 have_yasm="yes"
2548 echores "$_yasm"
2549 else
2550 def_yasm='#define HAVE_YASM 0'
2551 have_yasm="no"
2552 echores "no"
2555 echocheck "bswap"
2556 def_bswap='#define HAVE_BSWAP 0'
2557 echo 'bswap %eax' > $TMPS
2558 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2559 echores "$bswap"
2560 fi #if x86
2563 #FIXME: This should happen before the check for CFLAGS..
2564 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2565 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2567 # check if AltiVec is supported by the compiler, and how to enable it
2568 echocheck "GCC AltiVec flags"
2569 if $(cflag_check -maltivec -mabi=altivec) ; then
2570 _altivec_gcc_flags="-maltivec -mabi=altivec"
2571 # check if <altivec.h> should be included
2572 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2573 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2574 inc_altivec_h='#include <altivec.h>'
2575 else
2576 if $(cflag_check -faltivec) ; then
2577 _altivec_gcc_flags="-faltivec"
2578 else
2579 _altivec=no
2580 _altivec_gcc_flags="none, AltiVec disabled"
2584 echores "$_altivec_gcc_flags"
2586 # check if the compiler supports braces for vector declarations
2587 cat > $TMPC << EOF
2588 $inc_altivec_h
2589 int main(void) { (vector int) {1}; return 0; }
2591 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2593 # Disable runtime cpudetection if we cannot generate AltiVec code or
2594 # AltiVec is disabled by the user.
2595 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2596 && _runtime_cpudetection=no
2598 # Show that we are optimizing for AltiVec (if enabled and supported).
2599 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2600 && _optimizing="$_optimizing altivec"
2602 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2603 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2606 if ppc ; then
2607 def_xform_asm='#define HAVE_XFORM_ASM 0'
2608 xform_asm=no
2609 echocheck "XFORM ASM support"
2610 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2611 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2612 echores "$xform_asm"
2615 if arm ; then
2616 echocheck "ARM pld instruction"
2617 pld=no
2618 inline_asm_check '"pld [r0]"' && pld=yes
2619 echores "$pld"
2621 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2622 if test $_armv5te = "auto" ; then
2623 _armv5te=no
2624 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2626 echores "$_armv5te"
2628 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2630 echocheck "ARMv6 (SIMD instructions)"
2631 if test $_armv6 = "auto" ; then
2632 _armv6=no
2633 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2635 echores "$_armv6"
2637 echocheck "ARMv6t2 (SIMD instructions)"
2638 if test $_armv6t2 = "auto" ; then
2639 _armv6t2=no
2640 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2642 echores "$_armv6"
2644 echocheck "ARM VFP"
2645 if test $_armvfp = "auto" ; then
2646 _armvfp=no
2647 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2649 echores "$_armvfp"
2651 echocheck "ARM NEON"
2652 if test $neon = "auto" ; then
2653 neon=no
2654 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2656 echores "$neon"
2658 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2659 if test $_iwmmxt = "auto" ; then
2660 _iwmmxt=no
2661 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2663 echores "$_iwmmxt"
2666 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2667 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2668 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2669 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2670 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2671 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2672 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2673 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2674 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2675 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2676 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2677 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2678 test "$pld" = yes && cpuexts="PLD $cpuexts"
2679 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2680 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2681 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2682 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2683 test "$neon" = yes && cpuexts="NEON $cpuexts"
2684 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2685 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2686 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2688 # Checking kernel version...
2689 if x86_32 && linux ; then
2690 _k_verc_problem=no
2691 kernel_version=$(uname -r 2>&1)
2692 echocheck "$system_name kernel version"
2693 case "$kernel_version" in
2694 '') kernel_version="?.??"; _k_verc_fail=yes;;
2695 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2696 _k_verc_problem=yes;;
2697 esac
2698 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2699 _k_verc_fail=yes
2701 if test "$_k_verc_fail" ; then
2702 echores "$kernel_version, fail"
2703 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2704 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2705 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2706 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2707 echo "2.2.x you must upgrade it to get SSE support!"
2708 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2709 else
2710 echores "$kernel_version, ok"
2714 ######################
2715 # MAIN TESTS GO HERE #
2716 ######################
2719 echocheck "-lposix"
2720 if cflag_check -lposix ; then
2721 extra_ldflags="$extra_ldflags -lposix"
2722 echores "yes"
2723 else
2724 echores "no"
2727 echocheck "-lm"
2728 if cflag_check -lm ; then
2729 _ld_lm="-lm"
2730 echores "yes"
2731 else
2732 _ld_lm=""
2733 echores "no"
2737 echocheck "langinfo"
2738 if test "$_langinfo" = auto ; then
2739 _langinfo=no
2740 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2742 if test "$_langinfo" = yes ; then
2743 def_langinfo='#define HAVE_LANGINFO 1'
2744 else
2745 def_langinfo='#undef HAVE_LANGINFO'
2747 echores "$_langinfo"
2750 echocheck "translation support"
2751 if test "$_translation" = yes; then
2752 def_translation="#define CONFIG_TRANSLATION 1"
2753 else
2754 def_translation="#undef CONFIG_TRANSLATION"
2756 echores "$_translation"
2758 echocheck "language"
2759 # Set preferred languages, "all" uses English as main language.
2760 test -z "$language" && language=$LINGUAS
2761 test -z "$language_doc" && language_doc=$language
2762 test -z "$language_man" && language_man=$language
2763 test -z "$language_msg" && language_msg=$language
2764 test -z "$language_msg" && language_msg="all"
2765 language_doc=$(echo $language_doc | tr , " ")
2766 language_man=$(echo $language_man | tr , " ")
2767 language_msg=$(echo $language_msg | tr , " ")
2769 test "$language_doc" = "all" && language_doc=$doc_lang_all
2770 test "$language_man" = "all" && language_man=$man_lang_all
2771 test "$language_msg" = "all" && language_msg=$msg_lang_all
2773 if test "$_translation" != yes ; then
2774 language_msg=""
2777 # Prune non-existing translations from language lists.
2778 # Set message translation to the first available language.
2779 # Fall back on English.
2780 for lang in $language_doc ; do
2781 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2782 done
2783 language_doc=$tmp_language_doc
2784 test -z "$language_doc" && language_doc=en
2786 for lang in $language_man ; do
2787 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2788 done
2789 language_man=$tmp_language_man
2790 test -z "$language_man" && language_man=en
2792 for lang in $language_msg ; do
2793 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2794 done
2795 language_msg=$tmp_language_msg
2797 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2800 echocheck "enable sighandler"
2801 if test "$_sighandler" = yes ; then
2802 def_sighandler='#define CONFIG_SIGHANDLER 1'
2803 else
2804 def_sighandler='#undef CONFIG_SIGHANDLER'
2806 echores "$_sighandler"
2808 echocheck "runtime cpudetection"
2809 if test "$_runtime_cpudetection" = yes ; then
2810 _optimizing="Runtime CPU-Detection enabled"
2811 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2812 else
2813 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2815 echores "$_runtime_cpudetection"
2818 echocheck "restrict keyword"
2819 for restrict_keyword in restrict __restrict __restrict__ ; do
2820 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2821 if cc_check; then
2822 def_restrict_keyword=$restrict_keyword
2823 break;
2825 done
2826 if [ -n "$def_restrict_keyword" ]; then
2827 echores "$def_restrict_keyword"
2828 else
2829 echores "none"
2831 # Avoid infinite recursion loop ("#define restrict restrict")
2832 if [ "$def_restrict_keyword" != "restrict" ]; then
2833 def_restrict_keyword="#define restrict $def_restrict_keyword"
2834 else
2835 def_restrict_keyword=""
2839 echocheck "__builtin_expect"
2840 # GCC branch prediction hint
2841 cat > $TMPC << EOF
2842 static int foo(int a) {
2843 a = __builtin_expect(a, 10);
2844 return a == 10 ? 0 : 1;
2846 int main(void) { return foo(10) && foo(0); }
2848 _builtin_expect=no
2849 cc_check && _builtin_expect=yes
2850 if test "$_builtin_expect" = yes ; then
2851 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2852 else
2853 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2855 echores "$_builtin_expect"
2858 echocheck "kstat"
2859 _kstat=no
2860 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2861 if test "$_kstat" = yes ; then
2862 def_kstat="#define HAVE_LIBKSTAT 1"
2863 extra_ldflags="$extra_ldflags -lkstat"
2864 else
2865 def_kstat="#undef HAVE_LIBKSTAT"
2867 echores "$_kstat"
2870 echocheck "posix4"
2871 # required for nanosleep on some systems
2872 _posix4=no
2873 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2874 if test "$_posix4" = yes ; then
2875 extra_ldflags="$extra_ldflags -lposix4"
2877 echores "$_posix4"
2879 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2880 echocheck $func
2881 eval _$func=no
2882 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2883 if eval test "x\$_$func" = "xyes"; then
2884 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2885 echores yes
2886 else
2887 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2888 echores no
2890 done
2893 echocheck "mkstemp"
2894 _mkstemp=no
2895 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp=yes
2896 if test "$_mkstemp" = yes ; then
2897 def_mkstemp='#define HAVE_MKSTEMP 1'
2898 else
2899 def_mkstemp='#define HAVE_MKSTEMP 0'
2901 echores "$_mkstemp"
2904 echocheck "nanosleep"
2905 _nanosleep=no
2906 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2907 if test "$_nanosleep" = yes ; then
2908 def_nanosleep='#define HAVE_NANOSLEEP 1'
2909 else
2910 def_nanosleep='#undef HAVE_NANOSLEEP'
2912 echores "$_nanosleep"
2915 echocheck "socklib"
2916 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2917 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2918 cat > $TMPC << EOF
2919 #include <netdb.h>
2920 #include <sys/socket.h>
2921 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2923 _socklib=no
2924 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2925 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2926 done
2927 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2928 if test $_winsock2_h = auto ; then
2929 _winsock2_h=no
2930 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2932 test "$_ld_sock" && res_comment="using $_ld_sock"
2933 echores "$_socklib"
2936 if test $_winsock2_h = yes ; then
2937 _ld_sock="-lws2_32"
2938 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2939 else
2940 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2944 echocheck "arpa/inet.h"
2945 arpa_inet_h=no
2946 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2947 header_check arpa/inet.h && arpa_inet_h=yes &&
2948 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2949 echores "$arpa_inet_h"
2952 echocheck "inet_pton()"
2953 def_inet_pton='#define HAVE_INET_PTON 0'
2954 inet_pton=no
2955 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2956 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
2957 done
2958 if test $inet_pton = yes ; then
2959 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2960 def_inet_pton='#define HAVE_INET_PTON 1'
2962 echores "$inet_pton"
2965 echocheck "inet_aton()"
2966 def_inet_aton='#define HAVE_INET_ATON 0'
2967 inet_aton=no
2968 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2969 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
2970 done
2971 if test $inet_aton = yes ; then
2972 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2973 def_inet_aton='#define HAVE_INET_ATON 1'
2975 echores "$inet_aton"
2978 echocheck "socklen_t"
2979 _socklen_t=no
2980 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2981 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
2982 done
2983 if test "$_socklen_t" = yes ; then
2984 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2985 else
2986 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2988 echores "$_socklen_t"
2991 echocheck "closesocket()"
2992 _closesocket=no
2993 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2994 if test "$_closesocket" = yes ; then
2995 def_closesocket='#define HAVE_CLOSESOCKET 1'
2996 else
2997 def_closesocket='#define HAVE_CLOSESOCKET 0'
2999 echores "$_closesocket"
3002 echocheck "networking"
3003 test $_winsock2_h = no && test $inet_pton = no &&
3004 test $inet_aton = no && networking=no
3005 if test "$networking" = yes ; then
3006 def_network='#define CONFIG_NETWORK 1'
3007 def_networking='#define CONFIG_NETWORKING 1'
3008 extra_ldflags="$extra_ldflags $_ld_sock"
3009 inputmodules="networking $inputmodules"
3010 else
3011 noinputmodules="networking $noinputmodules"
3012 def_network='#define CONFIG_NETWORK 0'
3013 def_networking='#undef CONFIG_NETWORKING'
3015 echores "$networking"
3018 echocheck "inet6"
3019 if test "$_inet6" = auto ; then
3020 cat > $TMPC << EOF
3021 #include <sys/types.h>
3022 #if !defined(_WIN32)
3023 #include <sys/socket.h>
3024 #include <netinet/in.h>
3025 #else
3026 #include <ws2tcpip.h>
3027 #endif
3028 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3030 _inet6=no
3031 if cc_check $_ld_sock ; then
3032 _inet6=yes
3035 if test "$_inet6" = yes ; then
3036 def_inet6='#define HAVE_AF_INET6 1'
3037 else
3038 def_inet6='#undef HAVE_AF_INET6'
3040 echores "$_inet6"
3043 echocheck "gethostbyname2"
3044 if test "$_gethostbyname2" = auto ; then
3045 cat > $TMPC << EOF
3046 #include <sys/types.h>
3047 #include <sys/socket.h>
3048 #include <netdb.h>
3049 int main(void) { gethostbyname2("", AF_INET); return 0; }
3051 _gethostbyname2=no
3052 if cc_check ; then
3053 _gethostbyname2=yes
3056 if test "$_gethostbyname2" = yes ; then
3057 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3058 else
3059 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3061 echores "$_gethostbyname2"
3064 echocheck "inttypes.h (required)"
3065 _inttypes=no
3066 header_check inttypes.h && _inttypes=yes
3067 echores "$_inttypes"
3069 if test "$_inttypes" = no ; then
3070 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3071 header_check sys/bitypes.h && _inttypes=yes
3072 if test "$_inttypes" = yes ; then
3073 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."
3074 else
3075 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3080 echocheck "malloc.h"
3081 _malloc=no
3082 header_check malloc.h && _malloc=yes
3083 if test "$_malloc" = yes ; then
3084 def_malloc_h='#define HAVE_MALLOC_H 1'
3085 else
3086 def_malloc_h='#define HAVE_MALLOC_H 0'
3088 echores "$_malloc"
3091 echocheck "memalign()"
3092 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3093 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3094 _memalign=no
3095 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3096 if test "$_memalign" = yes ; then
3097 def_memalign='#define HAVE_MEMALIGN 1'
3098 else
3099 def_memalign='#define HAVE_MEMALIGN 0'
3100 def_map_memalign='#define memalign(a, b) malloc(b)'
3101 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3103 echores "$_memalign"
3106 echocheck "posix_memalign()"
3107 posix_memalign=no
3108 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3109 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3110 posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3111 echores "$posix_memalign"
3114 echocheck "alloca.h"
3115 _alloca=no
3116 statement_check alloca.h 'alloca(0)' && _alloca=yes
3117 if cc_check ; then
3118 def_alloca_h='#define HAVE_ALLOCA_H 1'
3119 else
3120 def_alloca_h='#undef HAVE_ALLOCA_H'
3122 echores "$_alloca"
3125 echocheck "fastmemcpy"
3126 if test "$_fastmemcpy" = yes ; then
3127 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3128 else
3129 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3131 echores "$_fastmemcpy"
3134 echocheck "mman.h"
3135 _mman=no
3136 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3137 if test "$_mman" = yes ; then
3138 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3139 else
3140 def_mman_h='#undef HAVE_SYS_MMAN_H'
3141 os2 && need_mmap=yes
3143 echores "$_mman"
3145 _mman_has_map_failed=no
3146 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3147 if test "$_mman_has_map_failed" = yes ; then
3148 def_mman_has_map_failed=''
3149 else
3150 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3153 echocheck "dynamic loader"
3154 _dl=no
3155 for _ld_tmp in "" "-ldl"; do
3156 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3157 done
3158 if test "$_dl" = yes ; then
3159 def_dl='#define HAVE_LIBDL 1'
3160 else
3161 def_dl='#undef HAVE_LIBDL'
3163 echores "$_dl"
3166 echocheck "dynamic a/v plugins support"
3167 if test "$_dl" = no ; then
3168 _dynamic_plugins=no
3170 if test "$_dynamic_plugins" = yes ; then
3171 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3172 else
3173 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3175 echores "$_dynamic_plugins"
3178 def_threads='#define HAVE_THREADS 0'
3180 echocheck "pthread"
3181 if linux ; then
3182 THREAD_CFLAGS=-D_REENTRANT
3183 elif freebsd || netbsd || openbsd || bsdos ; then
3184 THREAD_CFLAGS=-D_THREAD_SAFE
3186 if test "$_pthreads" = auto ; then
3187 cat > $TMPC << EOF
3188 #include <pthread.h>
3189 static void *func(void *arg) { return arg; }
3190 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3192 _pthreads=no
3193 if ! hpux ; then
3194 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3195 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3196 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3197 done
3200 if test "$_pthreads" = yes ; then
3201 test $_ld_pthread && res_comment="using $_ld_pthread"
3202 def_pthreads='#define HAVE_PTHREADS 1'
3203 def_threads='#define HAVE_THREADS 1'
3204 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3205 else
3206 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3207 def_pthreads='#undef HAVE_PTHREADS'
3208 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3209 mingw32 || _win32dll=no
3211 echores "$_pthreads"
3213 if cygwin ; then
3214 if test "$_pthreads" = yes ; then
3215 def_pthread_cache="#define PTHREAD_CACHE 1"
3216 else
3217 _stream_cache=no
3218 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3222 echocheck "w32threads"
3223 if test "$_pthreads" = yes ; then
3224 res_comment="using pthread instead"
3225 _w32threads=no
3227 if test "$_w32threads" = auto ; then
3228 _w32threads=no
3229 mingw32 && _w32threads=yes
3231 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3232 echores "$_w32threads"
3234 echocheck "rpath"
3235 if test "$_rpath" = yes ; then
3236 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3237 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3238 done
3239 extra_ldflags=$tmp
3241 echores "$_rpath"
3243 echocheck "iconv"
3244 if test "$_iconv" = auto ; then
3245 cat > $TMPC << EOF
3246 #include <stdio.h>
3247 #include <unistd.h>
3248 #include <iconv.h>
3249 #define INBUFSIZE 1024
3250 #define OUTBUFSIZE 4096
3252 char inbuffer[INBUFSIZE];
3253 char outbuffer[OUTBUFSIZE];
3255 int main(void) {
3256 size_t numread;
3257 iconv_t icdsc;
3258 char *tocode="UTF-8";
3259 char *fromcode="cp1250";
3260 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3261 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3262 char *iptr=inbuffer;
3263 char *optr=outbuffer;
3264 size_t inleft=numread;
3265 size_t outleft=OUTBUFSIZE;
3266 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3267 != (size_t)(-1)) {
3268 write(1, outbuffer, OUTBUFSIZE - outleft);
3271 if (iconv_close(icdsc) == -1)
3274 return 0;
3277 _iconv=no
3278 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3279 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3280 _iconv=yes && break
3281 done
3283 if test "$_iconv" = yes ; then
3284 def_iconv='#define CONFIG_ICONV 1'
3285 else
3286 def_iconv='#undef CONFIG_ICONV'
3288 echores "$_iconv"
3291 echocheck "soundcard.h"
3292 _soundcard_h=no
3293 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3294 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3295 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3296 header_check $_soundcard_header && _soundcard_h=yes &&
3297 res_comment="$_soundcard_header" && break
3298 done
3300 if test "$_soundcard_h" = yes ; then
3301 if test $_soundcard_header = "sys/soundcard.h"; then
3302 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3303 else
3304 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3307 echores "$_soundcard_h"
3310 echocheck "sys/dvdio.h"
3311 _dvdio=no
3312 # FreeBSD 8.1 has broken dvdio.h
3313 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3314 if test "$_dvdio" = yes ; then
3315 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3316 else
3317 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3319 echores "$_dvdio"
3322 echocheck "sys/cdio.h"
3323 _cdio=no
3324 # at least OpenSolaris has a broken cdio.h
3325 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3326 if test "$_cdio" = yes ; then
3327 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3328 else
3329 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3331 echores "$_cdio"
3334 echocheck "linux/cdrom.h"
3335 _cdrom=no
3336 header_check linux/cdrom.h && _cdrom=yes
3337 if test "$_cdrom" = yes ; then
3338 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3339 else
3340 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3342 echores "$_cdrom"
3345 echocheck "dvd.h"
3346 _dvd=no
3347 header_check dvd.h && _dvd=yes
3348 if test "$_dvd" = yes ; then
3349 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3350 else
3351 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3353 echores "$_dvd"
3356 if bsdos; then
3357 echocheck "BSDI dvd.h"
3358 _bsdi_dvd=no
3359 header_check dvd.h && _bsdi_dvd=yes
3360 if test "$_bsdi_dvd" = yes ; then
3361 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3362 else
3363 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3365 echores "$_bsdi_dvd"
3366 fi #if bsdos
3369 if hpux; then
3370 # also used by AIX, but AIX does not support VCD and/or libdvdread
3371 echocheck "HP-UX SCSI header"
3372 _hpux_scsi_h=no
3373 header_check sys/scsi.h && _hpux_scsi_h=yes
3374 if test "$_hpux_scsi_h" = yes ; then
3375 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3376 else
3377 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3379 echores "$_hpux_scsi_h"
3380 fi #if hpux
3383 if sunos; then
3384 echocheck "userspace SCSI headers (Solaris)"
3385 _sol_scsi_h=no
3386 header_check sys/scsi/scsi_types.h &&
3387 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3388 _sol_scsi_h=yes
3389 if test "$_sol_scsi_h" = yes ; then
3390 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3391 else
3392 def_sol_scsi_h='#undef SOLARIS_USCSI'
3394 echores "$_sol_scsi_h"
3395 fi #if sunos
3398 echocheck "termcap"
3399 if test "$_termcap" = auto ; then
3400 _termcap=no
3401 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3402 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3403 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3404 done
3406 if test "$_termcap" = yes ; then
3407 def_termcap='#define HAVE_TERMCAP 1'
3408 test $_ld_tmp && res_comment="using $_ld_tmp"
3409 else
3410 def_termcap='#undef HAVE_TERMCAP'
3412 echores "$_termcap"
3415 echocheck "termios"
3416 def_termios='#undef HAVE_TERMIOS'
3417 def_termios_h='#undef HAVE_TERMIOS_H'
3418 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3419 if test "$_termios" = auto ; then
3420 _termios=no
3421 for _termios_header in "termios.h" "sys/termios.h"; do
3422 header_check $_termios_header && _termios=yes &&
3423 res_comment="using $_termios_header" && break
3424 done
3427 if test "$_termios" = yes ; then
3428 def_termios='#define HAVE_TERMIOS 1'
3429 if test "$_termios_header" = "termios.h" ; then
3430 def_termios_h='#define HAVE_TERMIOS_H 1'
3431 else
3432 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3435 echores "$_termios"
3438 echocheck "shm"
3439 if test "$_shm" = auto ; then
3440 _shm=no
3441 statement_check sys/shm.h 'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm=yes
3443 if test "$_shm" = yes ; then
3444 def_shm='#define HAVE_SHM 1'
3445 else
3446 def_shm='#undef HAVE_SHM'
3448 echores "$_shm"
3451 echocheck "strsep()"
3452 _strsep=no
3453 statement_check string.h 'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep=yes
3454 if test "$_strsep" = yes ; then
3455 def_strsep='#define HAVE_STRSEP 1'
3456 need_strsep=no
3457 else
3458 def_strsep='#undef HAVE_STRSEP'
3459 need_strsep=yes
3461 echores "$_strsep"
3464 echocheck "vsscanf()"
3465 cat > $TMPC << EOF
3466 #define _ISOC99_SOURCE
3467 #include <stdarg.h>
3468 #include <stdio.h>
3469 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3471 _vsscanf=no
3472 cc_check && _vsscanf=yes
3473 if test "$_vsscanf" = yes ; then
3474 def_vsscanf='#define HAVE_VSSCANF 1'
3475 need_vsscanf=no
3476 else
3477 def_vsscanf='#undef HAVE_VSSCANF'
3478 need_vsscanf=yes
3480 echores "$_vsscanf"
3483 echocheck "swab()"
3484 _swab=no
3485 define_statement_check "_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' && _swab=yes
3486 if test "$_swab" = yes ; then
3487 def_swab='#define HAVE_SWAB 1'
3488 need_swab=no
3489 else
3490 def_swab='#undef HAVE_SWAB'
3491 need_swab=yes
3493 echores "$_swab"
3495 echocheck "POSIX select()"
3496 cat > $TMPC << EOF
3497 #include <stdio.h>
3498 #include <stdlib.h>
3499 #include <sys/types.h>
3500 #include <string.h>
3501 #include <sys/time.h>
3502 #include <unistd.h>
3503 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3505 _posix_select=no
3506 def_posix_select='#undef HAVE_POSIX_SELECT'
3507 #select() of kLIBC (OS/2) supports socket only
3508 ! os2 && cc_check && _posix_select=yes &&
3509 def_posix_select='#define HAVE_POSIX_SELECT 1'
3510 echores "$_posix_select"
3513 echocheck "audio select()"
3514 if test "$_select" = no ; then
3515 def_select='#undef HAVE_AUDIO_SELECT'
3516 elif test "$_select" = yes ; then
3517 def_select='#define HAVE_AUDIO_SELECT 1'
3519 echores "$_select"
3522 echocheck "gettimeofday()"
3523 _gettimeofday=no
3524 statement_check sys/time.h 'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday=yes
3525 if test "$_gettimeofday" = yes ; then
3526 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3527 need_gettimeofday=no
3528 else
3529 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3530 need_gettimeofday=yes
3532 echores "$_gettimeofday"
3535 echocheck "glob()"
3536 _glob=no
3537 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3538 if test "$_glob" = yes ; then
3539 def_glob='#define HAVE_GLOB 1'
3540 need_glob=no
3541 else
3542 def_glob='#undef HAVE_GLOB'
3543 need_glob=yes
3545 echores "$_glob"
3548 echocheck "setenv()"
3549 _setenv=no
3550 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3551 if test "$_setenv" = yes ; then
3552 def_setenv='#define HAVE_SETENV 1'
3553 need_setenv=no
3554 else
3555 def_setenv='#undef HAVE_SETENV'
3556 need_setenv=yes
3558 echores "$_setenv"
3561 echocheck "setmode()"
3562 _setmode=no
3563 def_setmode='#define HAVE_SETMODE 0'
3564 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3565 echores "$_setmode"
3568 if sunos; then
3569 echocheck "sysi86()"
3570 _sysi86=no
3571 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3572 if test "$_sysi86" = yes ; then
3573 def_sysi86='#define HAVE_SYSI86 1'
3574 statement_check sys/sysi86.h 'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3575 else
3576 def_sysi86='#undef HAVE_SYSI86'
3578 echores "$_sysi86"
3579 fi #if sunos
3582 echocheck "sys/sysinfo.h"
3583 _sys_sysinfo=no
3584 statement_check sys/sysinfo.h 'struct sysinfo s_info; sysinfo(&s_info)' && _sys_sysinfo=yes
3585 if test "$_sys_sysinfo" = yes ; then
3586 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3587 else
3588 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3590 echores "$_sys_sysinfo"
3593 if darwin; then
3595 echocheck "Mac OS X Finder Support"
3596 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3597 if test "$_macosx_finder" = yes ; then
3598 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3599 extra_ldflags="$extra_ldflags -framework Carbon"
3601 echores "$_macosx_finder"
3603 echocheck "Mac OS X Bundle file locations"
3604 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3605 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3606 if test "$_macosx_bundle" = yes ; then
3607 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3608 extra_ldflags="$extra_ldflags -framework Carbon"
3610 echores "$_macosx_bundle"
3612 echocheck "Apple Remote"
3613 if test "$_apple_remote" = auto ; then
3614 _apple_remote=no
3615 cat > $TMPC <<EOF
3616 #include <stdio.h>
3617 #include <IOKit/IOCFPlugIn.h>
3618 int main(void) {
3619 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3620 CFMutableDictionaryRef hidMatchDictionary;
3621 IOReturn ioReturnValue;
3623 // Set up a matching dictionary to search the I/O Registry by class.
3624 // name for all HID class devices
3625 hidMatchDictionary = IOServiceMatching("AppleIRController");
3627 // Now search I/O Registry for matching devices.
3628 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3629 hidMatchDictionary, &hidObjectIterator);
3631 // If search is unsuccessful, return nonzero.
3632 if (ioReturnValue != kIOReturnSuccess ||
3633 !IOIteratorIsValid(hidObjectIterator)) {
3634 return 1;
3636 return 0;
3639 cc_check -framework IOKit && _apple_remote=yes
3641 if test "$_apple_remote" = yes ; then
3642 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3643 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3644 else
3645 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3647 echores "$_apple_remote"
3649 fi #if darwin
3651 if linux; then
3653 echocheck "Apple IR"
3654 if test "$_apple_ir" = auto ; then
3655 _apple_ir=no
3656 statement_check linux/input.h 'struct input_event ev; struct input_id id' && _apple_ir=yes
3658 if test "$_apple_ir" = yes ; then
3659 def_apple_ir='#define CONFIG_APPLE_IR 1'
3660 else
3661 def_apple_ir='#undef CONFIG_APPLE_IR'
3663 echores "$_apple_ir"
3664 fi #if linux
3666 echocheck "pkg-config"
3667 _pkg_config=pkg-config
3668 if $($_pkg_config --version > /dev/null 2>&1); then
3669 if test "$_ld_static"; then
3670 _pkg_config="$_pkg_config --static"
3672 echores "yes"
3673 else
3674 _pkg_config=false
3675 echores "no"
3679 echocheck "Samba support (libsmbclient)"
3680 if test "$_smb" = yes; then
3681 extra_ldflags="$extra_ldflags -lsmbclient"
3683 if test "$_smb" = auto; then
3684 _smb=no
3685 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3686 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3687 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3688 done
3691 if test "$_smb" = yes; then
3692 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3693 inputmodules="smb $inputmodules"
3694 else
3695 def_smb="#undef CONFIG_LIBSMBCLIENT"
3696 noinputmodules="smb $noinputmodules"
3698 echores "$_smb"
3701 #########
3702 # VIDEO #
3703 #########
3706 echocheck "tdfxfb"
3707 if test "$_tdfxfb" = yes ; then
3708 def_tdfxfb='#define CONFIG_TDFXFB 1'
3709 vomodules="tdfxfb $vomodules"
3710 else
3711 def_tdfxfb='#undef CONFIG_TDFXFB'
3712 novomodules="tdfxfb $novomodules"
3714 echores "$_tdfxfb"
3716 echocheck "s3fb"
3717 if test "$_s3fb" = yes ; then
3718 def_s3fb='#define CONFIG_S3FB 1'
3719 vomodules="s3fb $vomodules"
3720 else
3721 def_s3fb='#undef CONFIG_S3FB'
3722 novomodules="s3fb $novomodules"
3724 echores "$_s3fb"
3726 echocheck "wii"
3727 if test "$_wii" = yes ; then
3728 def_wii='#define CONFIG_WII 1'
3729 vomodules="wii $vomodules"
3730 else
3731 def_wii='#undef CONFIG_WII'
3732 novomodules="wii $novomodules"
3734 echores "$_wii"
3736 echocheck "tdfxvid"
3737 if test "$_tdfxvid" = yes ; then
3738 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3739 vomodules="tdfx_vid $vomodules"
3740 else
3741 def_tdfxvid='#undef CONFIG_TDFX_VID'
3742 novomodules="tdfx_vid $novomodules"
3744 echores "$_tdfxvid"
3746 echocheck "xvr100"
3747 if test "$_xvr100" = auto ; then
3748 cat > $TMPC << EOF
3749 #include <unistd.h>
3750 #include <sys/fbio.h>
3751 #include <sys/visual_io.h>
3752 int main(void) {
3753 struct vis_identifier ident;
3754 struct fbgattr attr;
3755 ioctl(0, VIS_GETIDENTIFIER, &ident);
3756 ioctl(0, FBIOGATTR, &attr);
3757 return 0;
3760 _xvr100=no
3761 cc_check && _xvr100=yes
3763 if test "$_xvr100" = yes ; then
3764 def_xvr100='#define CONFIG_XVR100 1'
3765 vomodules="xvr100 $vomodules"
3766 else
3767 def_tdfxvid='#undef CONFIG_XVR100'
3768 novomodules="xvr100 $novomodules"
3770 echores "$_xvr100"
3772 echocheck "tga"
3773 if test "$_tga" = yes ; then
3774 def_tga='#define CONFIG_TGA 1'
3775 vomodules="tga $vomodules"
3776 else
3777 def_tga='#undef CONFIG_TGA'
3778 novomodules="tga $novomodules"
3780 echores "$_tga"
3783 echocheck "md5sum support"
3784 if test "$_md5sum" = yes; then
3785 def_md5sum="#define CONFIG_MD5SUM 1"
3786 vomodules="md5sum $vomodules"
3787 else
3788 def_md5sum="#undef CONFIG_MD5SUM"
3789 novomodules="md5sum $novomodules"
3791 echores "$_md5sum"
3794 echocheck "yuv4mpeg support"
3795 if test "$_yuv4mpeg" = yes; then
3796 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3797 vomodules="yuv4mpeg $vomodules"
3798 else
3799 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3800 novomodules="yuv4mpeg $novomodules"
3802 echores "$_yuv4mpeg"
3805 echocheck "bl"
3806 if test "$_bl" = yes ; then
3807 def_bl='#define CONFIG_BL 1'
3808 vomodules="bl $vomodules"
3809 else
3810 def_bl='#undef CONFIG_BL'
3811 novomodules="bl $novomodules"
3813 echores "$_bl"
3816 echocheck "DirectFB"
3817 if test "$_directfb" = auto ; then
3818 _directfb=no
3819 cat > $TMPC << EOF
3820 #include <directfb.h>
3821 #include <directfb_version.h>
3822 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3823 #error "DirectFB version too old."
3824 #endif
3825 int main(void) { DirectFBInit(0, 0); return 0; }
3827 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3828 cc_check $_inc_tmp -ldirectfb &&
3829 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3830 done
3832 if test "$_directfb" = yes ; then
3833 def_directfb='#define CONFIG_DIRECTFB 1'
3834 vomodules="directfb dfbmga $vomodules"
3835 libs_mplayer="$libs_mplayer -ldirectfb"
3836 else
3837 def_directfb='#undef CONFIG_DIRECTFB'
3838 novomodules="directfb dfbmga $novomodules"
3840 echores "$_directfb"
3843 echocheck "X11 headers presence"
3844 _x11_headers="no"
3845 res_comment="check if the dev(el) packages are installed"
3846 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3847 if test -f "$I/X11/Xlib.h" ; then
3848 _x11_headers="yes"
3849 res_comment=""
3850 break
3852 done
3853 if test $_cross_compile = no; then
3854 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3855 /usr/include/X11R6 /usr/openwin/include ; do
3856 if test -f "$I/X11/Xlib.h" ; then
3857 extra_cflags="$extra_cflags -I$I"
3858 _x11_headers="yes"
3859 res_comment="using $I"
3860 break
3862 done
3864 echores "$_x11_headers"
3867 echocheck "X11"
3868 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3869 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3870 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3871 -L/usr/lib ; do
3872 if netbsd; then
3873 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3874 else
3875 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3877 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3878 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3879 done
3881 if test "$_x11" = yes ; then
3882 def_x11='#define CONFIG_X11 1'
3883 vomodules="x11 xover $vomodules"
3884 else
3885 _x11=no
3886 def_x11='#undef CONFIG_X11'
3887 novomodules="x11 $novomodules"
3888 res_comment="check if the dev(el) packages are installed"
3889 # disable stuff that depends on X
3890 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
3892 echores "$_x11"
3894 echocheck "Xss screensaver extensions"
3895 if test "$_xss" = auto ; then
3896 _xss=no
3897 statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes
3899 if test "$_xss" = yes ; then
3900 def_xss='#define CONFIG_XSS 1'
3901 libs_mplayer="$libs_mplayer -lXss"
3902 else
3903 def_xss='#undef CONFIG_XSS'
3905 echores "$_xss"
3907 echocheck "DPMS"
3908 _xdpms3=no
3909 _xdpms4=no
3910 if test "$_x11" = yes ; then
3911 cat > $TMPC <<EOF
3912 #include <X11/Xmd.h>
3913 #include <X11/Xlib.h>
3914 #include <X11/Xutil.h>
3915 #include <X11/Xatom.h>
3916 #include <X11/extensions/dpms.h>
3917 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3919 cc_check -lXdpms && _xdpms3=yes
3920 statement_check_broken X11/Xlib.h X11/extensions/dpms.h 'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4=yes
3922 if test "$_xdpms4" = yes ; then
3923 def_xdpms='#define CONFIG_XDPMS 1'
3924 res_comment="using Xdpms 4"
3925 echores "yes"
3926 elif test "$_xdpms3" = yes ; then
3927 def_xdpms='#define CONFIG_XDPMS 1'
3928 libs_mplayer="$libs_mplayer -lXdpms"
3929 res_comment="using Xdpms 3"
3930 echores "yes"
3931 else
3932 def_xdpms='#undef CONFIG_XDPMS'
3933 echores "no"
3937 echocheck "Xv"
3938 if test "$_xv" = auto ; then
3939 _xv=no
3940 statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes
3943 if test "$_xv" = yes ; then
3944 def_xv='#define CONFIG_XV 1'
3945 libs_mplayer="$libs_mplayer -lXv"
3946 vomodules="xv $vomodules"
3947 else
3948 def_xv='#undef CONFIG_XV'
3949 novomodules="xv $novomodules"
3951 echores "$_xv"
3954 echocheck "XvMC"
3955 if test "$_xv" = yes && test "$_xvmc" != no ; then
3956 _xvmc=no
3957 cat > $TMPC <<EOF
3958 #include <X11/Xlib.h>
3959 #include <X11/extensions/Xvlib.h>
3960 #include <X11/extensions/XvMClib.h>
3961 int main(void) {
3962 XvMCQueryExtension(0, 0, 0);
3963 XvMCCreateContext(0, 0, 0, 0, 0, 0, 0);
3964 return 0; }
3966 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
3967 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
3968 done
3970 if test "$_xvmc" = yes ; then
3971 def_xvmc='#define CONFIG_XVMC 1'
3972 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
3973 vomodules="xvmc $vomodules"
3974 res_comment="using $_xvmclib"
3975 else
3976 def_xvmc='#define CONFIG_XVMC 0'
3977 novomodules="xvmc $novomodules"
3979 echores "$_xvmc"
3982 echocheck "VDPAU"
3983 if test "$_vdpau" = auto ; then
3984 _vdpau=no
3985 if test "$_dl" = yes ; then
3986 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
3989 if test "$_vdpau" = yes ; then
3990 def_vdpau='#define CONFIG_VDPAU 1'
3991 libs_mplayer="$libs_mplayer -lvdpau"
3992 vomodules="vdpau $vomodules"
3993 else
3994 def_vdpau='#define CONFIG_VDPAU 0'
3995 novomodules="vdpau $novomodules"
3997 echores "$_vdpau"
4000 echocheck "Xinerama"
4001 if test "$_xinerama" = auto ; then
4002 _xinerama=no
4003 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
4006 if test "$_xinerama" = yes ; then
4007 def_xinerama='#define CONFIG_XINERAMA 1'
4008 libs_mplayer="$libs_mplayer -lXinerama"
4009 else
4010 def_xinerama='#undef CONFIG_XINERAMA'
4012 echores "$_xinerama"
4015 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4016 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4017 # named 'X extensions' or something similar.
4018 # This check may be useful for future mplayer versions (to change resolution)
4019 # If you run into problems, remove '-lXxf86vm'.
4020 echocheck "Xxf86vm"
4021 if test "$_vm" = auto ; then
4022 _vm=no
4023 statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes
4025 if test "$_vm" = yes ; then
4026 def_vm='#define CONFIG_XF86VM 1'
4027 libs_mplayer="$libs_mplayer -lXxf86vm"
4028 else
4029 def_vm='#undef CONFIG_XF86VM'
4031 echores "$_vm"
4033 # Check for the presence of special keycodes, like audio control buttons
4034 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4035 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4036 # have these new keycodes.
4037 echocheck "XF86keysym"
4038 if test "$_xf86keysym" = auto; then
4039 _xf86keysym=no
4040 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
4042 if test "$_xf86keysym" = yes ; then
4043 def_xf86keysym='#define CONFIG_XF86XK 1'
4044 else
4045 def_xf86keysym='#undef CONFIG_XF86XK'
4047 echores "$_xf86keysym"
4049 echocheck "DGA"
4050 if test "$_dga2" = auto && test "$_x11" = yes ; then
4051 _dga2=no
4052 statement_check_broken X11/Xlib.h X11/extensions/xf86dga.h 'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2=yes
4054 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4055 _dga1=no
4056 statement_check_broken X11/Xlib.h X11/extensions/xf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
4059 _dga=no
4060 def_dga='#undef CONFIG_DGA'
4061 def_dga1='#undef CONFIG_DGA1'
4062 def_dga2='#undef CONFIG_DGA2'
4063 if test "$_dga1" = yes ; then
4064 _dga=yes
4065 def_dga1='#define CONFIG_DGA1 1'
4066 res_comment="using DGA 1.0"
4067 elif test "$_dga2" = yes ; then
4068 _dga=yes
4069 def_dga2='#define CONFIG_DGA2 1'
4070 res_comment="using DGA 2.0"
4072 if test "$_dga" = yes ; then
4073 def_dga='#define CONFIG_DGA 1'
4074 libs_mplayer="$libs_mplayer -lXxf86dga"
4075 vomodules="dga $vomodules"
4076 else
4077 novomodules="dga $novomodules"
4079 echores "$_dga"
4082 echocheck "3dfx"
4083 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4084 def_3dfx='#define CONFIG_3DFX 1'
4085 vomodules="3dfx $vomodules"
4086 else
4087 def_3dfx='#undef CONFIG_3DFX'
4088 novomodules="3dfx $novomodules"
4090 echores "$_3dfx"
4093 echocheck "GGI"
4094 if test "$_ggi" = auto ; then
4095 _ggi=no
4096 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4098 if test "$_ggi" = yes ; then
4099 def_ggi='#define CONFIG_GGI 1'
4100 libs_mplayer="$libs_mplayer -lggi"
4101 vomodules="ggi $vomodules"
4102 else
4103 def_ggi='#undef CONFIG_GGI'
4104 novomodules="ggi $novomodules"
4106 echores "$_ggi"
4108 echocheck "GGI extension: libggiwmh"
4109 if test "$_ggiwmh" = auto ; then
4110 _ggiwmh=no
4111 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4113 # needed to get right output on obscure combination
4114 # like --disable-ggi --enable-ggiwmh
4115 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4116 def_ggiwmh='#define CONFIG_GGIWMH 1'
4117 libs_mplayer="$libs_mplayer -lggiwmh"
4118 else
4119 _ggiwmh=no
4120 def_ggiwmh='#undef CONFIG_GGIWMH'
4122 echores "$_ggiwmh"
4125 echocheck "AA"
4126 if test "$_aa" = auto ; then
4127 cat > $TMPC << EOF
4128 #include <aalib.h>
4129 int main(void) {
4130 aa_context *c;
4131 aa_renderparams *p;
4132 aa_init(0, 0, 0);
4133 c = aa_autoinit(&aa_defparams);
4134 p = aa_getrenderparams();
4135 aa_autoinitkbd(c, 0);
4136 return 0; }
4138 _aa=no
4139 for _ld_tmp in "-laa" ; do
4140 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4141 done
4143 if test "$_aa" = yes ; then
4144 def_aa='#define CONFIG_AA 1'
4145 if cygwin ; then
4146 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4148 vomodules="aa $vomodules"
4149 else
4150 def_aa='#undef CONFIG_AA'
4151 novomodules="aa $novomodules"
4153 echores "$_aa"
4156 echocheck "CACA"
4157 if test "$_caca" = auto ; then
4158 _caca=no
4159 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4160 cat > $TMPC << EOF
4161 #include <caca.h>
4162 #ifdef CACA_API_VERSION_1
4163 #include <caca0.h>
4164 #endif
4165 int main(void) { caca_init(); return 0; }
4167 cc_check $(caca-config --libs) && _caca=yes
4170 if test "$_caca" = yes ; then
4171 def_caca='#define CONFIG_CACA 1'
4172 extra_cflags="$extra_cflags $(caca-config --cflags)"
4173 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4174 vomodules="caca $vomodules"
4175 else
4176 def_caca='#undef CONFIG_CACA'
4177 novomodules="caca $novomodules"
4179 echores "$_caca"
4182 echocheck "SVGAlib"
4183 if test "$_svga" = auto ; then
4184 _svga=no
4185 header_check vga.h -lvga $_ld_lm && _svga=yes
4187 if test "$_svga" = yes ; then
4188 def_svga='#define CONFIG_SVGALIB 1'
4189 libs_mplayer="$libs_mplayer -lvga"
4190 vomodules="svga $vomodules"
4191 else
4192 def_svga='#undef CONFIG_SVGALIB'
4193 novomodules="svga $novomodules"
4195 echores "$_svga"
4198 echocheck "FBDev"
4199 if test "$_fbdev" = auto ; then
4200 _fbdev=no
4201 linux && _fbdev=yes
4203 if test "$_fbdev" = yes ; then
4204 def_fbdev='#define CONFIG_FBDEV 1'
4205 vomodules="fbdev $vomodules"
4206 else
4207 def_fbdev='#undef CONFIG_FBDEV'
4208 novomodules="fbdev $novomodules"
4210 echores "$_fbdev"
4214 echocheck "DVB"
4215 if test "$_dvb" = auto ; then
4216 _dvb=no
4217 cat >$TMPC << EOF
4218 #include <poll.h>
4219 #include <sys/ioctl.h>
4220 #include <stdio.h>
4221 #include <time.h>
4222 #include <unistd.h>
4223 #include <linux/dvb/dmx.h>
4224 #include <linux/dvb/frontend.h>
4225 #include <linux/dvb/video.h>
4226 #include <linux/dvb/audio.h>
4227 int main(void) {return 0;}
4229 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4230 cc_check $_inc_tmp && _dvb=yes &&
4231 extra_cflags="$extra_cflags $_inc_tmp" && break
4232 done
4234 echores "$_dvb"
4235 if test "$_dvb" = yes ; then
4236 _dvbin=yes
4237 inputmodules="dvb $inputmodules"
4238 def_dvb='#define CONFIG_DVB 1'
4239 def_dvbin='#define CONFIG_DVBIN 1'
4240 aomodules="mpegpes(dvb) $aomodules"
4241 vomodules="mpegpes(dvb) $vomodules"
4242 else
4243 _dvbin=no
4244 noinputmodules="dvb $noinputmodules"
4245 def_dvb='#undef CONFIG_DVB'
4246 def_dvbin='#undef CONFIG_DVBIN '
4247 aomodules="mpegpes(file) $aomodules"
4248 vomodules="mpegpes(file) $vomodules"
4252 if darwin; then
4254 echocheck "QuickTime"
4255 if test "$quicktime" = auto ; then
4256 quicktime=no
4257 statement_check QuickTime/QuickTime.h 'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime && quicktime=yes
4259 if test "$quicktime" = yes ; then
4260 extra_ldflags="$extra_ldflags -framework QuickTime"
4261 def_quicktime='#define CONFIG_QUICKTIME 1'
4262 else
4263 def_quicktime='#undef CONFIG_QUICKTIME'
4264 _quartz=no
4266 echores $quicktime
4268 echocheck "Quartz"
4269 if test "$_quartz" = auto ; then
4270 _quartz=no
4271 statement_check Carbon/Carbon.h 'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon && _quartz=yes
4273 if test "$_quartz" = yes ; then
4274 libs_mplayer="$libs_mplayer -framework Carbon"
4275 def_quartz='#define CONFIG_QUARTZ 1'
4276 vomodules="quartz $vomodules"
4277 else
4278 def_quartz='#undef CONFIG_QUARTZ'
4279 novomodules="quartz $novomodules"
4281 echores $_quartz
4283 echocheck "CoreVideo"
4284 if test "$_corevideo" = auto ; then
4285 cat > $TMPC <<EOF
4286 #include <Carbon/Carbon.h>
4287 #include <CoreServices/CoreServices.h>
4288 #include <OpenGL/OpenGL.h>
4289 #include <QuartzCore/CoreVideo.h>
4290 int main(void) { return 0; }
4292 _corevideo=no
4293 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4295 if test "$_corevideo" = yes ; then
4296 vomodules="corevideo $vomodules"
4297 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4298 def_corevideo='#define CONFIG_COREVIDEO 1'
4299 else
4300 novomodules="corevideo $novomodules"
4301 def_corevideo='#undef CONFIG_COREVIDEO'
4303 echores "$_corevideo"
4305 fi #if darwin
4308 echocheck "PNG support"
4309 if test "$_png" = auto ; then
4310 _png=no
4311 if irix ; then
4312 # Don't check for -lpng on irix since it has its own libpng
4313 # incompatible with the GNU libpng
4314 res_comment="disabled on irix (not GNU libpng)"
4315 else
4316 cat > $TMPC << EOF
4317 #include <stdio.h>
4318 #include <string.h>
4319 #include <png.h>
4320 int main(void) {
4321 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4322 printf("libpng: %s\n", png_libpng_ver);
4323 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4326 cc_check -lpng -lz $_ld_lm && _png=yes
4329 echores "$_png"
4330 if test "$_png" = yes ; then
4331 def_png='#define CONFIG_PNG 1'
4332 extra_ldflags="$extra_ldflags -lpng -lz"
4333 else
4334 def_png='#undef CONFIG_PNG'
4337 echocheck "MNG support"
4338 if test "$_mng" = auto ; then
4339 _mng=no
4340 return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
4342 echores "$_mng"
4343 if test "$_mng" = yes ; then
4344 def_mng='#define CONFIG_MNG 1'
4345 extra_ldflags="$extra_ldflags -lmng -lz"
4346 else
4347 def_mng='#undef CONFIG_MNG'
4350 echocheck "JPEG support"
4351 if test "$_jpeg" = auto ; then
4352 _jpeg=no
4353 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4355 echores "$_jpeg"
4357 if test "$_jpeg" = yes ; then
4358 def_jpeg='#define CONFIG_JPEG 1'
4359 vomodules="jpeg $vomodules"
4360 extra_ldflags="$extra_ldflags -ljpeg"
4361 else
4362 def_jpeg='#undef CONFIG_JPEG'
4363 novomodules="jpeg $novomodules"
4368 echocheck "PNM support"
4369 if test "$_pnm" = yes; then
4370 def_pnm="#define CONFIG_PNM 1"
4371 vomodules="pnm $vomodules"
4372 else
4373 def_pnm="#undef CONFIG_PNM"
4374 novomodules="pnm $novomodules"
4376 echores "$_pnm"
4380 echocheck "GIF support"
4381 # This is to appease people who want to force gif support.
4382 # If it is forced to yes, then we still do checks to determine
4383 # which gif library to use.
4384 if test "$_gif" = yes ; then
4385 _force_gif=yes
4386 _gif=auto
4389 if test "$_gif" = auto ; then
4390 _gif=no
4391 for _ld_gif in "-lungif" "-lgif" ; do
4392 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4393 done
4396 # If no library was found, and the user wants support forced,
4397 # then we force it on with libgif, as this is the safest
4398 # assumption IMHO. (libungif & libregif both create symbolic
4399 # links to libgif. We also assume that no x11 support is needed,
4400 # because if you are forcing this, then you _should_ know what
4401 # you are doing. [ Besides, package maintainers should never
4402 # have compiled x11 deps into libungif in the first place. ] )
4403 # </rant>
4404 # --Joey
4405 if test "$_force_gif" = yes && test "$_gif" = no ; then
4406 _gif=yes
4407 _ld_gif="-lgif"
4410 if test "$_gif" = yes ; then
4411 def_gif='#define CONFIG_GIF 1'
4412 codecmodules="gif $codecmodules"
4413 vomodules="gif89a $vomodules"
4414 res_comment="old version, some encoding functions disabled"
4415 def_gif_4='#undef CONFIG_GIF_4'
4416 extra_ldflags="$extra_ldflags $_ld_gif"
4418 cat > $TMPC << EOF
4419 #include <signal.h>
4420 #include <stdio.h>
4421 #include <stdlib.h>
4422 #include <gif_lib.h>
4423 static void catch(int sig) { exit(1); }
4424 int main(void) {
4425 signal(SIGSEGV, catch); // catch segfault
4426 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4427 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4428 return 0;
4431 if cc_check "$_ld_gif" ; then
4432 def_gif_4='#define CONFIG_GIF_4 1'
4433 res_comment=""
4435 else
4436 def_gif='#undef CONFIG_GIF'
4437 def_gif_4='#undef CONFIG_GIF_4'
4438 novomodules="gif89a $novomodules"
4439 nocodecmodules="gif $nocodecmodules"
4441 echores "$_gif"
4444 case "$_gif" in yes*)
4445 echocheck "broken giflib workaround"
4446 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4448 cat > $TMPC << EOF
4449 #include <stdio.h>
4450 #include <gif_lib.h>
4451 int main(void) {
4452 GifFileType gif = {.UserData = NULL};
4453 printf("UserData is at address %p\n", gif.UserData);
4454 return 0;
4457 if cc_check "$_ld_gif" ; then
4458 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4459 echores "disabled"
4460 else
4461 echores "enabled"
4464 esac
4467 echocheck "VESA support"
4468 if test "$_vesa" = auto ; then
4469 _vesa=no
4470 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4472 if test "$_vesa" = yes ; then
4473 def_vesa='#define CONFIG_VESA 1'
4474 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4475 vomodules="vesa $vomodules"
4476 else
4477 def_vesa='#undef CONFIG_VESA'
4478 novomodules="vesa $novomodules"
4480 echores "$_vesa"
4482 #################
4483 # VIDEO + AUDIO #
4484 #################
4487 echocheck "SDL"
4488 _inc_tmp=""
4489 _ld_tmp=""
4490 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4491 if test -z "$_sdlconfig" ; then
4492 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4493 _sdlconfig="sdl-config"
4494 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4495 _sdlconfig="sdl11-config"
4496 else
4497 _sdlconfig=false
4500 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4501 cat > $TMPC << EOF
4502 #ifdef CONFIG_SDL_SDL_H
4503 #include <SDL/SDL.h>
4504 #else
4505 #include <SDL.h>
4506 #endif
4507 #ifndef __APPLE__
4508 // we allow SDL hacking our main() only on OSX
4509 #undef main
4510 #endif
4511 int main(int argc, char *argv[]) {
4512 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4513 return 0;
4516 _sdl=no
4517 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4518 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4519 _sdl=yes
4520 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4521 break
4523 done
4524 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4525 res_comment="using $_sdlconfig"
4526 if cygwin ; then
4527 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4528 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4529 elif mingw32 ; then
4530 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4531 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4532 else
4533 _inc_tmp="$($_sdlconfig --cflags)"
4534 _ld_tmp="$($_sdlconfig --libs)"
4536 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4537 _sdl=yes
4538 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4539 # HACK for BeOS/Haiku SDL
4540 _ld_tmp="$_ld_tmp -lstdc++"
4541 _sdl=yes
4545 if test "$_sdl" = yes ; then
4546 def_sdl='#define CONFIG_SDL 1'
4547 extra_cflags="$extra_cflags $_inc_tmp"
4548 libs_mplayer="$libs_mplayer $_ld_tmp"
4549 vomodules="sdl $vomodules"
4550 aomodules="sdl $aomodules"
4551 else
4552 def_sdl='#undef CONFIG_SDL'
4553 novomodules="sdl $novomodules"
4554 noaomodules="sdl $noaomodules"
4556 echores "$_sdl"
4559 # make sure this stays below CoreVideo to avoid issues due to namespace
4560 # conflicts between -lGL and -framework OpenGL
4561 echocheck "OpenGL"
4562 #Note: this test is run even with --enable-gl since we autodetect linker flags
4563 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
4564 cat > $TMPC << EOF
4565 #ifdef GL_WIN32
4566 #include <windows.h>
4567 #include <GL/gl.h>
4568 #elif defined(GL_SDL)
4569 #include <GL/gl.h>
4570 #ifdef CONFIG_SDL_SDL_H
4571 #include <SDL/SDL.h>
4572 #else
4573 #include <SDL.h>
4574 #endif
4575 #ifndef __APPLE__
4576 // we allow SDL hacking our main() only on OSX
4577 #undef main
4578 #endif
4579 #else
4580 #include <GL/gl.h>
4581 #include <X11/Xlib.h>
4582 #include <GL/glx.h>
4583 #endif
4584 int main(int argc, char *argv[]) {
4585 #ifdef GL_WIN32
4586 HDC dc;
4587 wglCreateContext(dc);
4588 #elif defined(GL_SDL)
4589 SDL_GL_SwapBuffers();
4590 #else
4591 glXCreateContext(NULL, NULL, NULL, True);
4592 #endif
4593 glFinish();
4594 return 0;
4597 _gl=no
4598 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4599 if cc_check $_ld_tmp $_ld_lm ; then
4600 _gl=yes
4601 _gl_x11=yes
4602 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4603 break
4605 done
4606 if cc_check -DGL_WIN32 -lopengl32 ; then
4607 _gl=yes
4608 _gl_win32=yes
4609 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4611 # last so it can reuse any linker etc. flags detected before
4612 if test "$_sdl" = yes ; then
4613 if cc_check -DGL_SDL ||
4614 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4615 _gl=yes
4616 _gl_sdl=yes
4617 elif cc_check -DGL_SDL -lGL ||
4618 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4619 _gl=yes
4620 _gl_sdl=yes
4621 libs_mplayer="$libs_mplayer -lGL"
4624 else
4625 _gl=no
4627 if test "$_gl" = yes ; then
4628 def_gl='#define CONFIG_GL 1'
4629 res_comment="backends:"
4630 if test "$_gl_win32" = yes ; then
4631 def_gl_win32='#define CONFIG_GL_WIN32 1'
4632 res_comment="$res_comment win32"
4634 if test "$_gl_x11" = yes ; then
4635 def_gl_x11='#define CONFIG_GL_X11 1'
4636 res_comment="$res_comment x11"
4638 if test "$_gl_sdl" = yes ; then
4639 def_gl_sdl='#define CONFIG_GL_SDL 1'
4640 res_comment="$res_comment sdl"
4642 vomodules="opengl $vomodules"
4643 else
4644 def_gl='#undef CONFIG_GL'
4645 def_gl_win32='#undef CONFIG_GL_WIN32'
4646 def_gl_x11='#undef CONFIG_GL_X11'
4647 def_gl_sdl='#undef CONFIG_GL_SDL'
4648 novomodules="opengl $novomodules"
4650 echores "$_gl"
4653 echocheck "MatrixView"
4654 if test "$_gl" = no ; then
4655 matrixview=no
4657 if test "$matrixview" = yes ; then
4658 vomodules="matrixview $vomodules"
4659 def_matrixview='#define CONFIG_MATRIXVIEW 1'
4660 else
4661 novomodules="matrixview $novomodules"
4662 def_matrixview='#undef CONFIG_MATRIXVIEW'
4664 echores "$matrixview"
4667 if os2 ; then
4668 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4669 if test "$_kva" = auto; then
4670 _kva=no;
4671 header_check_broken os2.h kva.h -lkva && _kva=yes
4673 if test "$_kva" = yes ; then
4674 def_kva='#define CONFIG_KVA 1'
4675 libs_mplayer="$libs_mplayer -lkva"
4676 vomodules="kva $vomodules"
4677 else
4678 def_kva='#undef CONFIG_KVA'
4679 novomodules="kva $novomodules"
4681 echores "$_kva"
4682 fi #if os2
4685 if win32; then
4687 echocheck "Windows waveout"
4688 if test "$_win32waveout" = auto ; then
4689 _win32waveout=no
4690 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4692 if test "$_win32waveout" = yes ; then
4693 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4694 libs_mplayer="$libs_mplayer -lwinmm"
4695 aomodules="win32 $aomodules"
4696 else
4697 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4698 noaomodules="win32 $noaomodules"
4700 echores "$_win32waveout"
4702 echocheck "Direct3D"
4703 if test "$_direct3d" = auto ; then
4704 _direct3d=no
4705 header_check d3d9.h && _direct3d=yes
4707 if test "$_direct3d" = yes ; then
4708 def_direct3d='#define CONFIG_DIRECT3D 1'
4709 vomodules="direct3d $vomodules"
4710 else
4711 def_direct3d='#undef CONFIG_DIRECT3D'
4712 novomodules="direct3d $novomodules"
4714 echores "$_direct3d"
4716 echocheck "Directx"
4717 if test "$_directx" = auto ; then
4718 cat > $TMPC << EOF
4719 #include <ddraw.h>
4720 #include <dsound.h>
4721 int main(void) { return 0; }
4723 _directx=no
4724 cc_check -lgdi32 && _directx=yes
4726 if test "$_directx" = yes ; then
4727 def_directx='#define CONFIG_DIRECTX 1'
4728 libs_mplayer="$libs_mplayer -lgdi32"
4729 vomodules="directx $vomodules"
4730 aomodules="dsound $aomodules"
4731 else
4732 def_directx='#undef CONFIG_DIRECTX'
4733 novomodules="directx $novomodules"
4734 noaomodules="dsound $noaomodules"
4736 echores "$_directx"
4738 fi #if win32; then
4741 echocheck "DXR3/H+"
4742 if test "$_dxr3" = auto ; then
4743 _dxr3=no
4744 header_check linux/em8300.h && _dxr3=yes
4746 if test "$_dxr3" = yes ; then
4747 def_dxr3='#define CONFIG_DXR3 1'
4748 vomodules="dxr3 $vomodules"
4749 else
4750 def_dxr3='#undef CONFIG_DXR3'
4751 novomodules="dxr3 $novomodules"
4753 echores "$_dxr3"
4756 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4757 if test "$_ivtv" = auto ; then
4758 cat > $TMPC << EOF
4759 #include <sys/time.h>
4760 #include <linux/videodev2.h>
4761 #include <linux/ivtv.h>
4762 #include <sys/ioctl.h>
4763 int main(void) {
4764 struct ivtv_cfg_stop_decode sd;
4765 struct ivtv_cfg_start_decode sd1;
4766 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4767 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4768 return 0; }
4770 _ivtv=no
4771 cc_check && _ivtv=yes
4773 if test "$_ivtv" = yes ; then
4774 def_ivtv='#define CONFIG_IVTV 1'
4775 vomodules="ivtv $vomodules"
4776 aomodules="ivtv $aomodules"
4777 else
4778 def_ivtv='#undef CONFIG_IVTV'
4779 novomodules="ivtv $novomodules"
4780 noaomodules="ivtv $noaomodules"
4782 echores "$_ivtv"
4785 echocheck "V4L2 MPEG Decoder"
4786 if test "$_v4l2" = auto ; then
4787 cat > $TMPC << EOF
4788 #include <sys/time.h>
4789 #include <linux/videodev2.h>
4790 #include <linux/version.h>
4791 int main(void) {
4792 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4793 #error kernel headers too old, need 2.6.22
4794 #endif
4795 struct v4l2_ext_controls ctrls;
4796 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4797 return 0;
4800 _v4l2=no
4801 cc_check && _v4l2=yes
4803 if test "$_v4l2" = yes ; then
4804 def_v4l2='#define CONFIG_V4L2_DECODER 1'
4805 vomodules="v4l2 $vomodules"
4806 aomodules="v4l2 $aomodules"
4807 else
4808 def_v4l2='#undef CONFIG_V4L2_DECODER'
4809 novomodules="v4l2 $novomodules"
4810 noaomodules="v4l2 $noaomodules"
4812 echores "$_v4l2"
4816 #########
4817 # AUDIO #
4818 #########
4821 echocheck "OSS Audio"
4822 if test "$_ossaudio" = auto ; then
4823 _ossaudio=no
4824 return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes
4826 if test "$_ossaudio" = yes ; then
4827 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
4828 aomodules="oss $aomodules"
4829 cat > $TMPC << EOF
4830 #include <$_soundcard_header>
4831 #ifdef OPEN_SOUND_SYSTEM
4832 int main(void) { return 0; }
4833 #else
4834 #error Not the real thing
4835 #endif
4837 _real_ossaudio=no
4838 cc_check && _real_ossaudio=yes
4839 if test "$_real_ossaudio" = yes; then
4840 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4841 # Check for OSS4 headers (override default headers)
4842 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4843 if test -f /etc/oss.conf; then
4844 . /etc/oss.conf
4845 _ossinc="$OSSLIBDIR/include"
4846 if test -f "$_ossinc/sys/soundcard.h"; then
4847 extra_cflags="-I$_ossinc $extra_cflags"
4850 elif netbsd || openbsd ; then
4851 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4852 extra_ldflags="$extra_ldflags -lossaudio"
4853 else
4854 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4856 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4857 else
4858 def_ossaudio='#undef CONFIG_OSS_AUDIO'
4859 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4860 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4861 noaomodules="oss $noaomodules"
4863 echores "$_ossaudio"
4866 echocheck "aRts"
4867 if test "$_arts" = auto ; then
4868 _arts=no
4869 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4870 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4871 _arts=yes
4875 if test "$_arts" = yes ; then
4876 def_arts='#define CONFIG_ARTS 1'
4877 aomodules="arts $aomodules"
4878 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
4879 extra_cflags="$extra_cflags $(artsc-config --cflags)"
4880 else
4881 noaomodules="arts $noaomodules"
4883 echores "$_arts"
4886 echocheck "EsounD"
4887 if test "$_esd" = auto ; then
4888 _esd=no
4889 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4890 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
4893 echores "$_esd"
4895 if test "$_esd" = yes ; then
4896 def_esd='#define CONFIG_ESD 1'
4897 aomodules="esd $aomodules"
4898 libs_mplayer="$libs_mplayer $(esd-config --libs)"
4899 extra_cflags="$extra_cflags $(esd-config --cflags)"
4901 echocheck "esd_get_latency()"
4902 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
4903 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
4904 echores "$_esd_latency"
4905 else
4906 def_esd='#undef CONFIG_ESD'
4907 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4908 noaomodules="esd $noaomodules"
4912 echocheck "NAS"
4913 if test "$_nas" = auto ; then
4914 _nas=no
4915 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
4917 if test "$_nas" = yes ; then
4918 def_nas='#define CONFIG_NAS 1'
4919 libs_mplayer="$libs_mplayer -laudio -lXt"
4920 aomodules="nas $aomodules"
4921 else
4922 noaomodules="nas $noaomodules"
4923 def_nas='#undef CONFIG_NAS'
4925 echores "$_nas"
4928 echocheck "pulse"
4929 if test "$_pulse" = auto ; then
4930 _pulse=no
4931 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4932 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
4933 _pulse=yes
4936 echores "$_pulse"
4938 if test "$_pulse" = yes ; then
4939 def_pulse='#define CONFIG_PULSE 1'
4940 aomodules="pulse $aomodules"
4941 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
4942 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
4943 else
4944 def_pulse='#undef CONFIG_PULSE'
4945 noaomodules="pulse $noaomodules"
4949 echocheck "JACK"
4950 if test "$_jack" = auto ; then
4951 _jack=yes
4952 if statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4953 libs_mplayer="$libs_mplayer -ljack"
4954 elif statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' $($_pkg_config --libs --cflags --silence-errors jack) ; then
4955 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
4956 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
4957 else
4958 _jack=no
4962 if test "$_jack" = yes ; then
4963 def_jack='#define CONFIG_JACK 1'
4964 aomodules="jack $aomodules"
4965 else
4966 noaomodules="jack $noaomodules"
4968 echores "$_jack"
4970 echocheck "OpenAL"
4971 if test "$_openal" = auto ; then
4972 _openal=no
4973 cat > $TMPC << EOF
4974 #ifdef OPENAL_AL_H
4975 #include <OpenAL/al.h>
4976 #else
4977 #include <AL/al.h>
4978 #endif
4979 int main(void) {
4980 alSourceQueueBuffers(0, 0, 0);
4981 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4982 return 0;
4985 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4986 cc_check $I && _openal=yes && break
4987 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
4988 done
4989 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
4991 if test "$_openal" = yes ; then
4992 def_openal='#define CONFIG_OPENAL 1'
4993 aomodules="openal $aomodules"
4994 else
4995 noaomodules="openal $noaomodules"
4997 echores "$_openal"
4999 echocheck "ALSA audio"
5000 if test "$_alloca" != yes ; then
5001 _alsa=no
5002 res_comment="alloca missing"
5004 if test "$_alsa" != no ; then
5005 _alsa=no
5006 cat > $TMPC << EOF
5007 #include <sys/asoundlib.h>
5008 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5009 #error "alsa version != 0.5.x"
5010 #endif
5011 int main(void) { return 0; }
5013 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5015 cat > $TMPC << EOF
5016 #include <sys/asoundlib.h>
5017 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5018 #error "alsa version != 0.9.x"
5019 #endif
5020 int main(void) { return 0; }
5022 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5023 cat > $TMPC << EOF
5024 #include <alsa/asoundlib.h>
5025 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5026 #error "alsa version != 0.9.x"
5027 #endif
5028 int main(void) { return 0; }
5030 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5032 cat > $TMPC << EOF
5033 #include <sys/asoundlib.h>
5034 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5035 #error "alsa version != 1.0.x"
5036 #endif
5037 int main(void) { return 0; }
5039 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5040 cat > $TMPC << EOF
5041 #include <alsa/asoundlib.h>
5042 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5043 #error "alsa version != 1.0.x"
5044 #endif
5045 int main(void) { return 0; }
5047 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5049 def_alsa='#undef CONFIG_ALSA'
5050 def_alsa5='#undef CONFIG_ALSA5'
5051 def_alsa9='#undef CONFIG_ALSA9'
5052 def_alsa1x='#undef CONFIG_ALSA1X'
5053 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5054 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5055 if test "$_alsaver" ; then
5056 _alsa=yes
5057 if test "$_alsaver" = '0.5.x' ; then
5058 _alsa5=yes
5059 aomodules="alsa5 $aomodules"
5060 def_alsa5='#define CONFIG_ALSA5 1'
5061 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5062 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5063 elif test "$_alsaver" = '0.9.x-sys' ; then
5064 _alsa9=yes
5065 aomodules="alsa $aomodules"
5066 def_alsa='#define CONFIG_ALSA 1'
5067 def_alsa9='#define CONFIG_ALSA9 1'
5068 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5069 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5070 elif test "$_alsaver" = '0.9.x-alsa' ; then
5071 _alsa9=yes
5072 aomodules="alsa $aomodules"
5073 def_alsa='#define CONFIG_ALSA 1'
5074 def_alsa9='#define CONFIG_ALSA9 1'
5075 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5076 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5077 elif test "$_alsaver" = '1.0.x-sys' ; then
5078 _alsa1x=yes
5079 aomodules="alsa $aomodules"
5080 def_alsa='#define CONFIG_ALSA 1'
5081 def_alsa1x="#define CONFIG_ALSA1X 1"
5082 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5083 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5084 elif test "$_alsaver" = '1.0.x-alsa' ; then
5085 _alsa1x=yes
5086 aomodules="alsa $aomodules"
5087 def_alsa='#define CONFIG_ALSA 1'
5088 def_alsa1x="#define CONFIG_ALSA1X 1"
5089 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5090 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5091 else
5092 _alsa=no
5093 res_comment="unknown version"
5095 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5096 else
5097 noaomodules="alsa $noaomodules"
5099 echores "$_alsa"
5102 echocheck "Sun audio"
5103 if test "$_sunaudio" = auto ; then
5104 cat > $TMPC << EOF
5105 #include <sys/types.h>
5106 #include <sys/audioio.h>
5107 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5109 _sunaudio=no
5110 cc_check && _sunaudio=yes
5112 if test "$_sunaudio" = yes ; then
5113 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5114 aomodules="sun $aomodules"
5115 else
5116 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5117 noaomodules="sun $noaomodules"
5119 echores "$_sunaudio"
5122 if darwin; then
5123 echocheck "CoreAudio"
5124 if test "$_coreaudio" = auto ; then
5125 cat > $TMPC <<EOF
5126 #include <CoreAudio/CoreAudio.h>
5127 #include <AudioToolbox/AudioToolbox.h>
5128 #include <AudioUnit/AudioUnit.h>
5129 int main(void) { return 0; }
5131 _coreaudio=no
5132 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5134 if test "$_coreaudio" = yes ; then
5135 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5136 def_coreaudio='#define CONFIG_COREAUDIO 1'
5137 aomodules="coreaudio $aomodules"
5138 else
5139 def_coreaudio='#undef CONFIG_COREAUDIO'
5140 noaomodules="coreaudio $noaomodules"
5142 echores $_coreaudio
5143 fi #if darwin
5146 if irix; then
5147 echocheck "SGI audio"
5148 if test "$_sgiaudio" = auto ; then
5149 _sgiaudio=no
5150 header_check dmedia/audio.h && _sgiaudio=yes
5152 if test "$_sgiaudio" = "yes" ; then
5153 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5154 libs_mplayer="$libs_mplayer -laudio"
5155 aomodules="sgi $aomodules"
5156 else
5157 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5158 noaomodules="sgi $noaomodules"
5160 echores "$_sgiaudio"
5161 fi #if irix
5164 if os2 ; then
5165 echocheck "KAI (UNIAUD/DART)"
5166 if test "$_kai" = auto; then
5167 _kai=no;
5168 header_check_broken os2.h kai.h -lkai && _kai=yes
5170 if test "$_kai" = yes ; then
5171 def_kai='#define CONFIG_KAI 1'
5172 libs_mplayer="$libs_mplayer -lkai"
5173 aomodules="kai $aomodules"
5174 else
5175 def_kai='#undef CONFIG_KAI'
5176 noaomodules="kai $noaomodules"
5178 echores "$_kai"
5180 echocheck "DART"
5181 if test "$_dart" = auto; then
5182 _dart=no;
5183 header_check_broken os2.h dart.h -ldart && _dart=yes
5185 if test "$_dart" = yes ; then
5186 def_dart='#define CONFIG_DART 1'
5187 libs_mplayer="$libs_mplayer -ldart"
5188 aomodules="dart $aomodules"
5189 else
5190 def_dart='#undef CONFIG_DART'
5191 noaomodules="dart $noaomodules"
5193 echores "$_dart"
5194 fi #if os2
5197 # set default CD/DVD devices
5198 if win32 || os2 ; then
5199 default_cdrom_device="D:"
5200 elif darwin ; then
5201 default_cdrom_device="/dev/disk1"
5202 elif dragonfly ; then
5203 default_cdrom_device="/dev/cd0"
5204 elif freebsd ; then
5205 default_cdrom_device="/dev/acd0"
5206 elif openbsd ; then
5207 default_cdrom_device="/dev/rcd0c"
5208 elif sunos ; then
5209 default_cdrom_device="/vol/dev/aliases/cdrom0"
5210 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5211 # file system and the volfs service.
5212 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5213 elif amigaos ; then
5214 default_cdrom_device="a1ide.device:2"
5215 else
5216 default_cdrom_device="/dev/cdrom"
5219 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5220 default_dvd_device=$default_cdrom_device
5221 elif darwin ; then
5222 default_dvd_device="/dev/rdiskN"
5223 else
5224 default_dvd_device="/dev/dvd"
5228 echocheck "VCD support"
5229 if test "$_vcd" = auto; then
5230 _vcd=no
5231 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5232 _vcd=yes
5233 elif mingw32; then
5234 header_check ddk/ntddcdrm.h && _vcd=yes
5237 if test "$_vcd" = yes; then
5238 inputmodules="vcd $inputmodules"
5239 def_vcd='#define CONFIG_VCD 1'
5240 else
5241 def_vcd='#undef CONFIG_VCD'
5242 noinputmodules="vcd $noinputmodules"
5243 res_comment="not supported on this OS"
5245 echores "$_vcd"
5249 echocheck "Blu-ray support"
5250 if test "$_bluray" = auto ; then
5251 _bluray=no
5252 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0)' -lbluray && _bluray=yes
5254 if test "$_bluray" = yes ; then
5255 def_bluray='#define CONFIG_LIBBLURAY 1'
5256 extra_ldflags="$extra_ldflags -lbluray"
5257 inputmodules="bluray $inputmodules"
5258 else
5259 def_bluray='#undef CONFIG_LIBBLURAY'
5260 noinputmodules="bluray $noinputmodules"
5262 echores "$_bluray"
5264 echocheck "dvdread"
5265 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5266 _dvdread_internal=no
5268 if test "$_dvdread_internal" = auto ; then
5269 _dvdread_internal=no
5270 _dvdread=no
5271 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) &&
5272 (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes ||
5273 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) ||
5274 darwin || win32 || os2; then
5275 _dvdread_internal=yes
5276 _dvdread=yes
5277 extra_cflags="-Ilibdvdread4 $extra_cflags"
5279 elif test "$_dvdread" = auto ; then
5280 _dvdread=no
5281 if test "$_dl" = yes; then
5282 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5283 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5284 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5285 _dvdread=yes
5286 extra_cflags="$extra_cflags $_dvdreadcflags"
5287 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5288 res_comment="external"
5293 if test "$_dvdread_internal" = yes; then
5294 def_dvdread='#define CONFIG_DVDREAD 1'
5295 inputmodules="dvdread(internal) $inputmodules"
5296 _largefiles=yes
5297 res_comment="internal"
5298 elif test "$_dvdread" = yes; then
5299 def_dvdread='#define CONFIG_DVDREAD 1'
5300 _largefiles=yes
5301 extra_ldflags="$extra_ldflags -ldvdread"
5302 inputmodules="dvdread(external) $inputmodules"
5303 res_comment="external"
5304 else
5305 def_dvdread='#undef CONFIG_DVDREAD'
5306 noinputmodules="dvdread $noinputmodules"
5308 echores "$_dvdread"
5311 echocheck "internal libdvdcss"
5312 if test "$_libdvdcss_internal" = auto ; then
5313 _libdvdcss_internal=no
5314 test "$_dvdread_internal" = yes && test -d libdvdcss && _libdvdcss_internal=yes
5315 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5317 if test "$_libdvdcss_internal" = yes ; then
5318 if linux || netbsd || openbsd || bsdos ; then
5319 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5320 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5321 elif freebsd || dragonfly ; then
5322 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5323 elif darwin ; then
5324 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5325 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5326 elif cygwin ; then
5327 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5328 elif beos ; then
5329 cflags_libdvdcss="-DSYS_BEOS"
5330 elif os2 ; then
5331 cflags_libdvdcss="-DSYS_OS2"
5333 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5334 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5335 inputmodules="libdvdcss(internal) $inputmodules"
5336 _largefiles=yes
5337 else
5338 noinputmodules="libdvdcss(internal) $noinputmodules"
5340 echores "$_libdvdcss_internal"
5343 echocheck "cdparanoia"
5344 if test "$_cdparanoia" = auto ; then
5345 cat > $TMPC <<EOF
5346 #include <cdda_interface.h>
5347 #include <cdda_paranoia.h>
5348 // This need a better test. How ?
5349 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5351 _cdparanoia=no
5352 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5353 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5354 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5355 done
5357 if test "$_cdparanoia" = yes ; then
5358 _cdda='yes'
5359 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5360 openbsd && extra_ldflags="$extra_ldflags -lutil"
5362 echores "$_cdparanoia"
5365 echocheck "libcdio"
5366 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5367 cat > $TMPC << EOF
5368 #include <stdio.h>
5369 #include <cdio/version.h>
5370 #include <cdio/cdda.h>
5371 #include <cdio/paranoia.h>
5372 int main(void) {
5373 void *test = cdda_verbose_set;
5374 printf("%s\n", CDIO_VERSION);
5375 return test == (void *)1;
5378 _libcdio=no
5379 for _ld_tmp in "" "-lwinmm" ; do
5380 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5381 cc_check $_ld_tmp $_ld_lm && _libcdio=yes &&
5382 extra_ldflags="$extra_ldflags $_ld_tmp" && break
5383 done
5384 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5385 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5386 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5387 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes &&
5388 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5391 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5392 _cdda='yes'
5393 def_libcdio='#define CONFIG_LIBCDIO 1'
5394 def_havelibcdio='yes'
5395 else
5396 if test "$_cdparanoia" = yes ; then
5397 res_comment="using cdparanoia"
5399 def_libcdio='#undef CONFIG_LIBCDIO'
5400 def_havelibcdio='no'
5402 echores "$_libcdio"
5404 if test "$_cdda" = yes ; then
5405 test $_cddb = auto && test $networking = yes && _cddb=yes
5406 def_cdparanoia='#define CONFIG_CDDA 1'
5407 inputmodules="cdda $inputmodules"
5408 else
5409 def_cdparanoia='#undef CONFIG_CDDA'
5410 noinputmodules="cdda $noinputmodules"
5413 if test "$_cddb" = yes ; then
5414 def_cddb='#define CONFIG_CDDB 1'
5415 inputmodules="cddb $inputmodules"
5416 else
5417 _cddb=no
5418 def_cddb='#undef CONFIG_CDDB'
5419 noinputmodules="cddb $noinputmodules"
5422 echocheck "bitmap font support"
5423 if test "$_bitmap_font" = yes ; then
5424 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5425 else
5426 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5428 echores "$_bitmap_font"
5431 echocheck "freetype >= 2.0.9"
5433 # freetype depends on iconv
5434 if test "$_iconv" = no ; then
5435 _freetype=no
5436 res_comment="iconv support needed"
5439 if test "$_freetype" = auto ; then
5440 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5441 cat > $TMPC << EOF
5442 #include <stdio.h>
5443 #include <ft2build.h>
5444 #include FT_FREETYPE_H
5445 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5446 #error "Need FreeType 2.0.9 or newer"
5447 #endif
5448 int main(void) {
5449 FT_Library library;
5450 FT_Init_FreeType(&library);
5451 return 0;
5454 _freetype=no
5455 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5456 else
5457 _freetype=no
5460 if test "$_freetype" = yes ; then
5461 def_freetype='#define CONFIG_FREETYPE 1'
5462 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5463 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5464 else
5465 def_freetype='#undef CONFIG_FREETYPE'
5467 echores "$_freetype"
5469 if test "$_freetype" = no ; then
5470 _fontconfig=no
5471 res_comment="FreeType support needed"
5473 echocheck "fontconfig"
5474 if test "$_fontconfig" = auto ; then
5475 cat > $TMPC << EOF
5476 #include <stdio.h>
5477 #include <stdlib.h>
5478 #include <fontconfig/fontconfig.h>
5479 #if FC_VERSION < 20402
5480 #error At least version 2.4.2 of fontconfig required
5481 #endif
5482 int main(void) {
5483 int err = FcInit();
5484 if (err == FcFalse) {
5485 printf("Couldn't initialize fontconfig lib\n");
5486 exit(err);
5488 return 0;
5491 _fontconfig=no
5492 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5493 _ld_tmp="-lfontconfig $_ld_tmp"
5494 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5495 done
5496 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5497 _inc_tmp=$($_pkg_config --cflags fontconfig)
5498 _ld_tmp=$($_pkg_config --libs fontconfig)
5499 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes &&
5500 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5503 if test "$_fontconfig" = yes ; then
5504 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5505 else
5506 def_fontconfig='#undef CONFIG_FONTCONFIG'
5508 echores "$_fontconfig"
5511 echocheck "SSA/ASS support"
5512 if test "$_ass" = auto -o "$_ass" = yes ; then
5513 if $_pkg_config libass; then
5514 _ass=yes
5515 def_ass='#define CONFIG_ASS 1'
5516 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5517 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5518 else
5519 _ass=no
5520 def_ass='#undef CONFIG_ASS'
5522 else
5523 def_ass='#undef CONFIG_ASS'
5525 echores "$_ass"
5528 echocheck "fribidi with charsets"
5529 _inc_tmp=""
5530 _ld_tmp=""
5531 if test "$_fribidi" = auto ; then
5532 cat > $TMPC << EOF
5533 #include <stdlib.h>
5534 /* workaround for fribidi 0.10.4 and below */
5535 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5536 #include <fribidi/fribidi.h>
5537 int main(void) {
5538 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5539 exit(1);
5540 return 0;
5543 _fribidi=no
5544 _inc_tmp=""
5545 _ld_tmp="-lfribidi"
5546 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5547 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
5548 test "$_fribidi" = no ; then
5549 _inc_tmp="$($_pkg_config --cflags)"
5550 _ld_tmp="$($_pkg_config --libs)"
5551 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5554 if test "$_fribidi" = yes ; then
5555 def_fribidi='#define CONFIG_FRIBIDI 1'
5556 extra_cflags="$extra_cflags $_inc_tmp"
5557 extra_ldflags="$extra_ldflags $_ld_tmp"
5558 else
5559 def_fribidi='#undef CONFIG_FRIBIDI'
5561 echores "$_fribidi"
5564 echocheck "ENCA"
5565 if test "$_enca" = auto ; then
5566 _enca=no
5567 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5569 if test "$_enca" = yes ; then
5570 def_enca='#define CONFIG_ENCA 1'
5571 extra_ldflags="$extra_ldflags -lenca"
5572 else
5573 def_enca='#undef CONFIG_ENCA'
5575 echores "$_enca"
5578 echocheck "zlib"
5579 _zlib=no
5580 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5581 if test "$_zlib" = yes ; then
5582 def_zlib='#define CONFIG_ZLIB 1'
5583 extra_ldflags="$extra_ldflags -lz"
5584 else
5585 def_zlib='#define CONFIG_ZLIB 0'
5587 echores "$_zlib"
5590 echocheck "RTC"
5591 if test "$_rtc" = auto ; then
5592 cat > $TMPC << EOF
5593 #include <sys/ioctl.h>
5594 #ifdef __linux__
5595 #include <linux/rtc.h>
5596 #else
5597 #include <rtc.h>
5598 #define RTC_PIE_ON RTCIO_PIE_ON
5599 #endif
5600 int main(void) { return RTC_PIE_ON; }
5602 _rtc=no
5603 cc_check && _rtc=yes
5604 ppc && _rtc=no
5606 if test "$_rtc" = yes ; then
5607 def_rtc='#define HAVE_RTC 1'
5608 else
5609 def_rtc='#undef HAVE_RTC'
5611 echores "$_rtc"
5614 echocheck "mad support"
5615 if test "$_mad" = auto ; then
5616 _mad=no
5617 header_check mad.h -lmad && _mad=yes
5619 if test "$_mad" = yes ; then
5620 def_mad='#define CONFIG_LIBMAD 1'
5621 extra_ldflags="$extra_ldflags -lmad"
5622 codecmodules="libmad $codecmodules"
5623 else
5624 def_mad='#undef CONFIG_LIBMAD'
5625 nocodecmodules="libmad $nocodecmodules"
5627 echores "$_mad"
5629 echocheck "OggVorbis support"
5630 if test "$_libvorbis" = auto; then
5631 _libvorbis=no
5632 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes && _tremor=no
5633 elif test "$_libvorbis" = yes ; then
5634 _tremor=no
5636 if test "$_tremor" = auto; then
5637 _tremor=no
5638 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5640 if test "$_tremor" = yes ; then
5641 _vorbis=yes
5642 def_vorbis='#define CONFIG_OGGVORBIS 1'
5643 def_tremor='#define CONFIG_TREMOR 1'
5644 codecmodules="tremor(external) $codecmodules"
5645 res_comment="external Tremor"
5646 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
5647 elif test "$_libvorbis" = yes ; then
5648 _vorbis=yes
5649 def_vorbis='#define CONFIG_OGGVORBIS 1'
5650 codecmodules="libvorbis $codecmodules"
5651 res_comment="libvorbis"
5652 extra_ldflags="$extra_ldflags -lvorbis -logg"
5653 else
5654 _vorbis=no
5655 nocodecmodules="libvorbis $nocodecmodules"
5657 echores "$_vorbis"
5659 echocheck "libspeex (version >= 1.1 required)"
5660 if test "$_speex" = auto ; then
5661 _speex=no
5662 cat > $TMPC << EOF
5663 #include <stddef.h>
5664 #include <speex/speex.h>
5665 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5667 cc_check -lspeex $_ld_lm && _speex=yes
5669 if test "$_speex" = yes ; then
5670 def_speex='#define CONFIG_SPEEX 1'
5671 extra_ldflags="$extra_ldflags -lspeex"
5672 codecmodules="speex $codecmodules"
5673 else
5674 def_speex='#undef CONFIG_SPEEX'
5675 nocodecmodules="speex $nocodecmodules"
5677 echores "$_speex"
5679 echocheck "OggTheora support"
5680 if test "$_theora" = auto ; then
5681 _theora=no
5682 cat > $TMPC << EOF
5683 #include <theora/theora.h>
5684 #include <string.h>
5685 int main(void) {
5686 /* Theora is in flux, make sure that all interface routines and datatypes
5687 * exist and work the way we expect it, so we don't break MPlayer. */
5688 ogg_packet op;
5689 theora_comment tc;
5690 theora_info inf;
5691 theora_state st;
5692 yuv_buffer yuv;
5693 int r;
5694 double t;
5696 theora_info_init(&inf);
5697 theora_comment_init(&tc);
5699 return 0;
5701 /* we don't want to execute this kind of nonsense; just for making sure
5702 * that compilation works... */
5703 memset(&op, 0, sizeof(op));
5704 r = theora_decode_header(&inf, &tc, &op);
5705 r = theora_decode_init(&st, &inf);
5706 t = theora_granule_time(&st, op.granulepos);
5707 r = theora_decode_packetin(&st, &op);
5708 r = theora_decode_YUVout(&st, &yuv);
5709 theora_clear(&st);
5711 return 0;
5714 _ld_theora=$($_pkg_config --silence-errors --libs theora)
5715 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
5716 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
5717 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
5718 if test _theora = no; then
5719 _ld_theora="-ltheora -logg"
5720 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
5723 if test "$_theora" = yes ; then
5724 def_theora='#define CONFIG_OGGTHEORA 1'
5725 codecmodules="libtheora $codecmodules"
5726 # when --enable-theora is forced, we'd better provide a probably sane
5727 # $_ld_theora than nothing
5728 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
5729 else
5730 def_theora='#undef CONFIG_OGGTHEORA'
5731 nocodecmodules="libtheora $nocodecmodules"
5733 echores "$_theora"
5735 echocheck "mp3lib support"
5736 if test "$_mp3lib" = auto ; then
5737 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
5739 if test "$_mp3lib" = yes ; then
5740 def_mp3lib='#define CONFIG_MP3LIB 1'
5741 codecmodules="mp3lib(internal) $codecmodules"
5742 else
5743 def_mp3lib='#undef CONFIG_MP3LIB'
5744 nocodecmodules="mp3lib(internal) $nocodecmodules"
5746 echores "$_mp3lib"
5748 # Any version of libmpg123 shall be fine.
5749 echocheck "mpg123 support"
5750 def_mpg123='#undef CONFIG_MPG123'
5751 if test "$_mpg123" = auto; then
5752 _mpg123=no
5753 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
5755 if test "$_mpg123" = yes ; then
5756 def_mpg123='#define CONFIG_MPG123 1'
5757 codecmodules="mpg123 $codecmodules"
5758 else
5759 nocodecmodules="mpg123 $nocodecmodules"
5761 echores "$_mpg123"
5763 echocheck "liba52 support"
5764 def_liba52='#undef CONFIG_LIBA52'
5765 if test "$_liba52" = auto ; then
5766 _liba52=no
5767 cat > $TMPC << EOF
5768 #include <inttypes.h>
5769 #include <a52dec/a52.h>
5770 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5772 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
5774 if test "$_liba52" = yes ; then
5775 def_liba52='#define CONFIG_LIBA52 1'
5776 codecmodules="liba52 $codecmodules"
5777 else
5778 nocodecmodules="liba52 $nocodecmodules"
5780 echores "$_liba52"
5782 echocheck "libdca support"
5783 if test "$_libdca" = auto ; then
5784 _libdca=no
5785 for _ld_dca in -ldca -ldts ; do
5786 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
5787 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
5788 done
5790 if test "$_libdca" = yes ; then
5791 def_libdca='#define CONFIG_LIBDCA 1'
5792 codecmodules="libdca $codecmodules"
5793 else
5794 def_libdca='#undef CONFIG_LIBDCA'
5795 nocodecmodules="libdca $nocodecmodules"
5797 echores "$_libdca"
5799 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5800 if test "$_musepack" = yes ; then
5801 _musepack=no
5802 cat > $TMPC << EOF
5803 #include <stddef.h>
5804 #include <mpcdec/mpcdec.h>
5805 int main(void) {
5806 mpc_streaminfo info;
5807 mpc_decoder decoder;
5808 mpc_decoder_set_streaminfo(&decoder, &info);
5809 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5810 return 0;
5813 cc_check -lmpcdec $_ld_lm && _musepack=yes
5815 if test "$_musepack" = yes ; then
5816 def_musepack='#define CONFIG_MUSEPACK 1'
5817 extra_ldflags="$extra_ldflags -lmpcdec"
5818 codecmodules="musepack $codecmodules"
5819 else
5820 def_musepack='#undef CONFIG_MUSEPACK'
5821 nocodecmodules="musepack $nocodecmodules"
5823 echores "$_musepack"
5826 echocheck "FAAD2 support"
5827 if test "$_faad" = auto ; then
5828 _faad=no
5829 cat > $TMPC << EOF
5830 #include <faad.h>
5831 #ifndef FAAD_MIN_STREAMSIZE
5832 #error Too old version
5833 #endif
5834 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5835 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5837 cc_check -lfaad $_ld_lm && _faad=yes
5840 def_faad='#undef CONFIG_FAAD'
5841 if test "$_faad" = yes ; then
5842 def_faad='#define CONFIG_FAAD 1'
5843 extra_ldflags="$extra_ldflags -lfaad"
5844 codecmodules="faad2 $codecmodules"
5845 else
5846 nocodecmodules="faad2 $nocodecmodules"
5848 echores "$_faad"
5851 echocheck "LADSPA plugin support"
5852 if test "$_ladspa" = auto ; then
5853 _ladspa=no
5854 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5856 if test "$_ladspa" = yes; then
5857 def_ladspa="#define CONFIG_LADSPA 1"
5858 else
5859 def_ladspa="#undef CONFIG_LADSPA"
5861 echores "$_ladspa"
5864 echocheck "libbs2b audio filter support"
5865 if test "$_libbs2b" = auto ; then
5866 cat > $TMPC <<EOF
5867 #include <bs2b.h>
5868 #if BS2B_VERSION_MAJOR < 3
5869 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5870 #endif
5871 int main(void) {
5872 t_bs2bdp filter;
5873 filter=bs2b_open();
5874 bs2b_close(filter);
5875 return 0;
5878 _libbs2b=no
5879 if $_pkg_config --exists libbs2b ; then
5880 _inc_tmp=$($_pkg_config --cflags libbs2b)
5881 _ld_tmp=$($_pkg_config --libs libbs2b)
5882 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
5883 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
5884 else
5885 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
5886 -I/usr/local/include/bs2b ; do
5887 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
5888 extra_ldflags="$extra_ldflags -lbs2b"
5889 extra_cflags="$extra_cflags $_inc_tmp"
5890 _libbs2b=yes
5891 break
5893 done
5896 def_libbs2b="#undef CONFIG_LIBBS2B"
5897 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5898 echores "$_libbs2b"
5901 if test -z "$_codecsdir" ; then
5902 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
5903 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5904 if test -d "$dir" ; then
5905 _codecsdir="$dir"
5906 break;
5908 done
5910 # Fall back on default directory.
5911 if test -z "$_codecsdir" ; then
5912 _codecsdir="$_libdir/codecs"
5913 mingw32 || os2 && _codecsdir="codecs"
5917 echocheck "Win32 codecs"
5918 if test "$_win32dll" = auto ; then
5919 _win32dll=no
5920 if x86_32 && ! qnx; then
5921 _win32dll=yes
5924 if test "$_win32dll" = yes ; then
5925 def_win32dll='#define CONFIG_WIN32DLL 1'
5926 if ! win32 ; then
5927 def_win32_loader='#define WIN32_LOADER 1'
5928 _win32_emulation=yes
5929 else
5930 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5931 res_comment="using native windows"
5933 codecmodules="win32 $codecmodules"
5934 else
5935 def_win32dll='#undef CONFIG_WIN32DLL'
5936 def_win32_loader='#undef WIN32_LOADER'
5937 nocodecmodules="win32 $nocodecmodules"
5939 echores "$_win32dll"
5942 echocheck "XAnim codecs"
5943 if test "$_xanim" = auto ; then
5944 _xanim=no
5945 res_comment="dynamic loader support needed"
5946 if test "$_dl" = yes ; then
5947 _xanim=yes
5950 if test "$_xanim" = yes ; then
5951 def_xanim='#define CONFIG_XANIM 1'
5952 codecmodules="xanim $codecmodules"
5953 else
5954 def_xanim='#undef CONFIG_XANIM'
5955 nocodecmodules="xanim $nocodecmodules"
5957 echores "$_xanim"
5960 echocheck "RealPlayer codecs"
5961 if test "$_real" = auto ; then
5962 _real=no
5963 res_comment="dynamic loader support needed"
5964 if test "$_dl" = yes || test "$_win32dll" = yes &&
5965 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
5966 _real=yes
5969 if test "$_real" = yes ; then
5970 def_real='#define CONFIG_REALCODECS 1'
5971 codecmodules="real $codecmodules"
5972 else
5973 def_real='#undef CONFIG_REALCODECS'
5974 nocodecmodules="real $nocodecmodules"
5976 echores "$_real"
5979 echocheck "QuickTime codecs"
5980 _qtx_emulation=no
5981 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
5982 if test "$_qtx" = auto ; then
5983 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
5985 if test "$_qtx" = yes ; then
5986 def_qtx='#define CONFIG_QTX_CODECS 1'
5987 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
5988 codecmodules="qtx $codecmodules"
5989 darwin || win32 || _qtx_emulation=yes
5990 else
5991 def_qtx='#undef CONFIG_QTX_CODECS'
5992 nocodecmodules="qtx $nocodecmodules"
5994 echores "$_qtx"
5996 echocheck "Nemesi Streaming Media libraries"
5997 if test "$_nemesi" = auto && test "$networking" = yes ; then
5998 _nemesi=no
5999 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6000 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6001 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6002 _nemesi=yes
6005 if test "$_nemesi" = yes; then
6006 _native_rtsp=no
6007 def_nemesi='#define CONFIG_LIBNEMESI 1'
6008 inputmodules="nemesi $inputmodules"
6009 else
6010 _native_rtsp="$networking"
6011 _nemesi=no
6012 def_nemesi='#undef CONFIG_LIBNEMESI'
6013 noinputmodules="nemesi $noinputmodules"
6015 echores "$_nemesi"
6017 echocheck "LIVE555 Streaming Media libraries"
6018 if test "$_live" = auto && test "$networking" = yes ; then
6019 cat > $TMPCPP << EOF
6020 #include <liveMedia.hh>
6021 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6022 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6023 #endif
6024 int main(void) { return 0; }
6027 _live=no
6028 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
6029 cxx_check $I/liveMedia/include $I/UsageEnvironment/include $I/groupsock/include &&
6030 _livelibdir=$(echo $I| sed s/-I//) &&
6031 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6032 $_livelibdir/groupsock/libgroupsock.a \
6033 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6034 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6035 $extra_ldflags -lstdc++" \
6036 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6037 -I$_livelibdir/UsageEnvironment/include \
6038 -I$_livelibdir/BasicUsageEnvironment/include \
6039 -I$_livelibdir/groupsock/include" &&
6040 _live=yes && break
6041 done
6042 if test "$_live" != yes ; then
6043 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6044 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6045 _live_dist=yes
6049 if test "$_live" = yes && test "$networking" = yes; then
6050 test $_livelibdir && res_comment="using $_livelibdir"
6051 def_live='#define CONFIG_LIVE555 1'
6052 inputmodules="live555 $inputmodules"
6053 elif test "$_live_dist" = yes && test "$networking" = yes; then
6054 res_comment="using distribution version"
6055 _live="yes"
6056 def_live='#define CONFIG_LIVE555 1'
6057 extra_ldflags="$extra_ldflags $ld_tmp"
6058 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6059 inputmodules="live555 $inputmodules"
6060 else
6061 _live=no
6062 def_live='#undef CONFIG_LIVE555'
6063 noinputmodules="live555 $noinputmodules"
6065 echores "$_live"
6069 all_ffmpeg_libs="libavutil libavcodec libavformat libswscale libpostproc"
6070 echocheck "FFmpeg ($all_ffmpeg_libs)"
6071 if test "$ffmpeg" = auto ; then
6072 ffmpeg=no
6073 if $_pkg_config --exists $all_ffmpeg_libs ; then
6074 inc_ffmpeg=$($_pkg_config --cflags $all_ffmpeg_libs)
6075 _ld_tmp=$($_pkg_config --libs $all_ffmpeg_libs)
6076 extra_ldflags="$extra_ldflags $_ld_tmp"
6077 extra_cflags="$extra_cflags $inc_ffmpeg"
6078 ffmpeg=yes
6079 elif header_check libavutil/avutil.h -lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
6080 extra_ldflags="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
6081 ffmpeg=yes
6082 else
6083 die "Unable to find development files for some of the FFmpeg libraries above. Aborting. If you really mean to compile without FFmpeg support use --disable-ffmpeg."
6087 ffmpeg_eval_api=no
6088 def_ffmpeg_eval_api="#undef CONFIG_FFMPEG_EVAL_API"
6089 if test "$ffmpeg" = yes; then
6090 def_ffmpeg='#define CONFIG_FFMPEG 1'
6091 codecmodules="ffmpeg $codecmodules"
6092 if $_pkg_config --atleast-version=50.18.0 libavutil ; then
6093 ffmpeg_eval_api=yes
6094 def_ffmpeg_eval_api="#define CONFIG_FFMPEG_EVAL_API 1"
6096 else
6097 def_ffmpeg='#undef CONFIG_FFMPEG'
6098 nocodecmodules="ffmpeg $nocodecmodules"
6100 echores "$ffmpeg"
6102 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
6103 if ! test -z "$_ffmpeg_source" ; then
6104 test "$ffmpeg" = yes && def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
6109 echocheck "libdv-0.9.5+"
6110 if test "$_libdv" = auto ; then
6111 _libdv=no
6112 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
6114 if test "$_libdv" = yes ; then
6115 def_libdv='#define CONFIG_LIBDV095 1'
6116 extra_ldflags="$extra_ldflags -ldv"
6117 codecmodules="libdv $codecmodules"
6118 else
6119 def_libdv='#undef CONFIG_LIBDV095'
6120 nocodecmodules="libdv $nocodecmodules"
6122 echores "$_libdv"
6125 echocheck "Xvid"
6126 if test "$_xvid" = auto ; then
6127 _xvid=no
6128 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6129 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6130 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6131 done
6134 if test "$_xvid" = yes ; then
6135 def_xvid='#define CONFIG_XVID4 1'
6136 codecmodules="xvid $codecmodules"
6137 else
6138 def_xvid='#undef CONFIG_XVID4'
6139 nocodecmodules="xvid $nocodecmodules"
6141 echores "$_xvid"
6144 echocheck "libnut"
6145 if test "$_libnut" = auto ; then
6146 _libnut=no
6147 statement_check libnut.h 'nut_context_tt * nut; nut_error(0)' -lnut && _libnut=yes
6150 if test "$_libnut" = yes ; then
6151 def_libnut='#define CONFIG_LIBNUT 1'
6152 extra_ldflags="$extra_ldflags -lnut"
6153 else
6154 def_libnut='#undef CONFIG_LIBNUT'
6156 echores "$_libnut"
6158 # These VO checks must be done after the FFmpeg one
6159 echocheck "/dev/mga_vid"
6160 if test "$_mga" = auto ; then
6161 _mga=no
6162 test -c /dev/mga_vid && _mga=yes
6164 if test "$_mga" = yes ; then
6165 def_mga='#define CONFIG_MGA 1'
6166 vomodules="mga $vomodules"
6167 else
6168 def_mga='#undef CONFIG_MGA'
6169 novomodules="mga $novomodules"
6171 echores "$_mga"
6174 echocheck "xmga"
6175 if test "$_xmga" = auto ; then
6176 _xmga=no
6177 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6179 if test "$_xmga" = yes ; then
6180 def_xmga='#define CONFIG_XMGA 1'
6181 vomodules="xmga $vomodules"
6182 else
6183 def_xmga='#undef CONFIG_XMGA'
6184 novomodules="xmga $novomodules"
6186 echores "$_xmga"
6189 echocheck "UnRAR executable"
6190 if test "$_unrar_exec" = auto ; then
6191 _unrar_exec="yes"
6192 mingw32 && _unrar_exec="no"
6194 if test "$_unrar_exec" = yes ; then
6195 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6196 else
6197 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
6199 echores "$_unrar_exec"
6201 echocheck "TV interface"
6202 if test "$_tv" = yes ; then
6203 def_tv='#define CONFIG_TV 1'
6204 inputmodules="tv $inputmodules"
6205 else
6206 noinputmodules="tv $noinputmodules"
6207 def_tv='#undef CONFIG_TV'
6209 echores "$_tv"
6212 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6213 echocheck "*BSD BT848 bt8xx header"
6214 _ioctl_bt848_h=no
6215 for file in "machine/ioctl_bt848.h" \
6216 "dev/bktr/ioctl_bt848.h" \
6217 "dev/video/bktr/ioctl_bt848.h" \
6218 "dev/ic/bt8xx.h" ; do
6219 cat > $TMPC <<EOF
6220 #include <sys/types.h>
6221 #include <sys/ioctl.h>
6222 #include <$file>
6223 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6225 if cc_check ; then
6226 _ioctl_bt848_h=yes
6227 _ioctl_bt848_h_name="$file"
6228 break;
6230 done
6231 if test "$_ioctl_bt848_h" = yes ; then
6232 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6233 res_comment="using $_ioctl_bt848_h_name"
6234 else
6235 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6237 echores "$_ioctl_bt848_h"
6239 echocheck "*BSD ioctl_meteor.h"
6240 _ioctl_meteor_h=no
6241 for ioctl_meteor_h_path in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6242 statement_check_broken "sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6243 _ioctl_meteor_h=yes && break
6244 done
6245 if test "$_ioctl_meteor_h" = yes ; then
6246 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6247 res_comment="using $ioctl_meteor_h_path"
6248 else
6249 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6251 echores "$_ioctl_meteor_h"
6253 echocheck "*BSD BrookTree 848 TV interface"
6254 if test "$_tv_bsdbt848" = auto ; then
6255 _tv_bsdbt848=no
6256 if test "$_tv" = yes ; then
6257 cat > $TMPC <<EOF
6258 #include <sys/types.h>
6259 $def_ioctl_meteor_h_name
6260 $def_ioctl_bt848_h_name
6261 #ifdef IOCTL_METEOR_H_NAME
6262 #include IOCTL_METEOR_H_NAME
6263 #endif
6264 #ifdef IOCTL_BT848_H_NAME
6265 #include IOCTL_BT848_H_NAME
6266 #endif
6267 int main(void) {
6268 ioctl(0, METEORSINPUT, 0);
6269 ioctl(0, TVTUNER_GETFREQ, 0);
6270 return 0;
6273 cc_check && _tv_bsdbt848=yes
6276 if test "$_tv_bsdbt848" = yes ; then
6277 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
6278 inputmodules="tv-bsdbt848 $inputmodules"
6279 else
6280 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
6281 noinputmodules="tv-bsdbt848 $noinputmodules"
6283 echores "$_tv_bsdbt848"
6284 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6287 echocheck "DirectShow TV interface"
6288 if test "$_tv_dshow" = auto ; then
6289 _tv_dshow=no
6290 if test "$_tv" = yes && win32 ; then
6291 statement_check ole2.h 'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow=yes
6294 if test "$_tv_dshow" = yes ; then
6295 inputmodules="tv-dshow $inputmodules"
6296 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
6297 extra_ldflags="$extra_ldflags -lole32 -luuid"
6298 else
6299 noinputmodules="tv-dshow $noinputmodules"
6300 def_tv_dshow='#undef CONFIG_TV_DSHOW'
6302 echores "$_tv_dshow"
6305 echocheck "Video 4 Linux TV interface"
6306 if test "$_tv_v4l1" = auto ; then
6307 _tv_v4l1=no
6308 if test "$_tv" = yes && linux ; then
6309 header_check_broken sys/time.h linux/videodev.h && _tv_v4l1=yes
6312 if test "$_tv_v4l1" = yes ; then
6313 _audio_input=yes
6314 _tv_v4l=yes
6315 def_tv_v4l='#define CONFIG_TV_V4L 1'
6316 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6317 inputmodules="tv-v4l $inputmodules"
6318 else
6319 noinputmodules="tv-v4l1 $noinputmodules"
6320 def_tv_v4l='#undef CONFIG_TV_V4L'
6322 echores "$_tv_v4l1"
6325 echocheck "Video 4 Linux 2 TV interface"
6326 if test "$_tv_v4l2" = auto ; then
6327 _tv_v4l2=no
6328 if test "$_tv" = yes && linux ; then
6329 header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
6332 if test "$_tv_v4l2" = yes ; then
6333 _audio_input=yes
6334 _tv_v4l=yes
6335 def_tv_v4l='#define CONFIG_TV_V4L 1'
6336 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6337 inputmodules="tv-v4l2 $inputmodules"
6338 else
6339 noinputmodules="tv-v4l2 $noinputmodules"
6340 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6342 echores "$_tv_v4l2"
6345 echocheck "Radio interface"
6346 if test "$_radio" = yes ; then
6347 def_radio='#define CONFIG_RADIO 1'
6348 inputmodules="radio $inputmodules"
6349 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6350 _radio_capture=no
6352 if test "$_radio_capture" = yes ; then
6353 _audio_input=yes
6354 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6355 else
6356 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6358 else
6359 noinputmodules="radio $noinputmodules"
6360 def_radio='#undef CONFIG_RADIO'
6361 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6362 _radio_capture=no
6364 echores "$_radio"
6365 echocheck "Capture for Radio interface"
6366 echores "$_radio_capture"
6368 echocheck "Video 4 Linux 2 Radio interface"
6369 if test "$_radio_v4l2" = auto ; then
6370 _radio_v4l2=no
6371 if test "$_radio" = yes && linux ; then
6372 header_check linux/videodev2.h && _radio_v4l2=yes
6375 if test "$_radio_v4l2" = yes ; then
6376 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6377 else
6378 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6380 echores "$_radio_v4l2"
6382 echocheck "Video 4 Linux Radio interface"
6383 if test "$_radio_v4l" = auto ; then
6384 _radio_v4l=no
6385 if test "$_radio" = yes && linux ; then
6386 header_check linux/videodev.h && _radio_v4l=yes
6389 if test "$_radio_v4l" = yes ; then
6390 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6391 else
6392 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6394 echores "$_radio_v4l"
6396 if freebsd || netbsd || openbsd || dragonfly || bsdos &&
6397 test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6398 echocheck "*BSD BrookTree 848 Radio interface"
6399 _radio_bsdbt848=no
6400 cat > $TMPC <<EOF
6401 #include <sys/types.h>
6402 $def_ioctl_bt848_h_name
6403 #ifdef IOCTL_BT848_H_NAME
6404 #include IOCTL_BT848_H_NAME
6405 #endif
6406 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6408 cc_check && _radio_bsdbt848=yes
6409 echores "$_radio_bsdbt848"
6410 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6412 if test "$_radio_bsdbt848" = yes ; then
6413 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6414 else
6415 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6418 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no &&
6419 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6420 die "Radio driver requires BSD BT848, V4L or V4L2!"
6423 echocheck "Video 4 Linux 2 MPEG PVR interface"
6424 if test "$_pvr" = auto ; then
6425 _pvr=no
6426 if test "$_tv_v4l2" = yes && linux ; then
6427 cat > $TMPC <<EOF
6428 #include <sys/time.h>
6429 #include <linux/videodev2.h>
6430 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6432 cc_check && _pvr=yes
6435 if test "$_pvr" = yes ; then
6436 def_pvr='#define CONFIG_PVR 1'
6437 inputmodules="pvr $inputmodules"
6438 else
6439 noinputmodules="pvr $noinputmodules"
6440 def_pvr='#undef CONFIG_PVR'
6442 echores "$_pvr"
6445 echocheck "ftp"
6446 if test "$_ftp" = "auto" ; then
6447 test "$networking" = "yes" && ! beos && _ftp=yes
6449 if test "$_ftp" = yes ; then
6450 def_ftp='#define CONFIG_FTP 1'
6451 inputmodules="ftp $inputmodules"
6452 else
6453 noinputmodules="ftp $noinputmodules"
6454 def_ftp='#undef CONFIG_FTP'
6456 echores "$_ftp"
6458 echocheck "vstream client"
6459 if test "$_vstream" = auto ; then
6460 _vstream=no
6461 cat > $TMPC <<EOF
6462 #include <vstream-client.h>
6463 void vstream_error(const char *format, ... ) {}
6464 int main(void) { vstream_start(); return 0; }
6466 cc_check -lvstream-client && _vstream=yes
6468 if test "$_vstream" = yes ; then
6469 def_vstream='#define CONFIG_VSTREAM 1'
6470 inputmodules="vstream $inputmodules"
6471 extra_ldflags="$extra_ldflags -lvstream-client"
6472 else
6473 noinputmodules="vstream $noinputmodules"
6474 def_vstream='#undef CONFIG_VSTREAM'
6476 echores "$_vstream"
6479 echocheck "OSD menu"
6480 if test "$_menu" = yes ; then
6481 def_menu='#define CONFIG_MENU 1'
6482 test $_dvbin = "yes" && _menu_dvbin=yes
6483 else
6484 def_menu='#undef CONFIG_MENU'
6485 _menu_dvbin=no
6487 echores "$_menu"
6490 echocheck "Subtitles sorting"
6491 if test "$_sortsub" = yes ; then
6492 def_sortsub='#define CONFIG_SORTSUB 1'
6493 else
6494 def_sortsub='#undef CONFIG_SORTSUB'
6496 echores "$_sortsub"
6499 echocheck "XMMS inputplugin support"
6500 if test "$_xmms" = yes ; then
6501 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6502 _xmmsplugindir=$(xmms-config --input-plugin-dir)
6503 _xmmslibdir=$(xmms-config --exec-prefix)/lib
6504 else
6505 _xmmsplugindir=/usr/lib/xmms/Input
6506 _xmmslibdir=/usr/lib
6509 def_xmms='#define CONFIG_XMMS 1'
6510 if darwin ; then
6511 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6512 else
6513 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6515 else
6516 def_xmms='#undef CONFIG_XMMS'
6518 echores "$_xmms"
6520 if test "$_charset" != "noconv" ; then
6521 def_charset="#define MSG_CHARSET \"$_charset\""
6522 else
6523 def_charset="#undef MSG_CHARSET"
6524 _charset="UTF-8"
6527 #############################################################################
6529 echocheck "automatic gdb attach"
6530 if test "$_crash_debug" = yes ; then
6531 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6532 else
6533 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6534 _crash_debug=no
6536 echores "$_crash_debug"
6538 echocheck "compiler support for noexecstack"
6539 if cflag_check -Wl,-z,noexecstack ; then
6540 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
6541 echores "yes"
6542 else
6543 echores "no"
6546 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
6547 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6548 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6549 echores "yes"
6550 else
6551 echores "no"
6555 # Dynamic linking flags
6556 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6557 _ld_dl_dynamic=''
6558 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
6559 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
6560 _ld_dl_dynamic='-rdynamic'
6563 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6564 bsdos && extra_ldflags="$extra_ldflags -ldvd"
6565 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
6567 def_debug='#undef MP_DEBUG'
6568 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
6571 echocheck "joystick"
6572 def_joystick='#undef CONFIG_JOYSTICK'
6573 if test "$_joystick" = yes ; then
6574 if linux || freebsd ; then
6575 # TODO add some check
6576 def_joystick='#define CONFIG_JOYSTICK 1'
6577 else
6578 _joystick="no"
6579 res_comment="unsupported under $system_name"
6582 echores "$_joystick"
6584 echocheck "lirc"
6585 if test "$_lirc" = auto ; then
6586 _lirc=no
6587 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
6589 if test "$_lirc" = yes ; then
6590 def_lirc='#define CONFIG_LIRC 1'
6591 libs_mplayer="$libs_mplayer -llirc_client"
6592 else
6593 def_lirc='#undef CONFIG_LIRC'
6595 echores "$_lirc"
6597 echocheck "lircc"
6598 if test "$_lircc" = auto ; then
6599 _lircc=no
6600 header_check lirc/lircc.h -llircc && _lircc=yes
6602 if test "$_lircc" = yes ; then
6603 def_lircc='#define CONFIG_LIRCC 1'
6604 libs_mplayer="$libs_mplayer -llircc"
6605 else
6606 def_lircc='#undef CONFIG_LIRCC'
6608 echores "$_lircc"
6610 #############################################################################
6612 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6613 # the OMF format needs to come after the 'extern symbol prefix' check, which
6614 # uses nm.
6615 if os2 ; then
6616 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6619 #############################################################################
6620 # 64 bit file offsets?
6621 if test "$_largefiles" = yes || freebsd ; then
6622 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6623 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
6624 # dvdread support requires this (for off64_t)
6625 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6629 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6631 # This must be the last test to be performed. Any other tests following it
6632 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6633 # against libdvdread (to permit MPlayer to use its own copy of the library).
6634 # So any compilation using the flags added here but not linking against
6635 # libdvdread can fail.
6636 echocheck "DVD support (libdvdnav)"
6637 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6638 _dvdnav=no
6640 dvdnav_internal=no
6641 if test "$_dvdnav" = auto ; then
6642 if test "$_dvdread_internal" = yes ; then
6643 _dvdnav=yes
6644 dvdnav_internal=yes
6645 res_comment="internal"
6646 else
6647 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6650 if test "$_dvdnav" = auto ; then
6651 _dvdnav=no
6652 _dvdnavdir=$($_dvdnavconfig --cflags)
6653 _dvdnavlibs=$($_dvdnavconfig --libs)
6654 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
6656 if test "$_dvdnav" = yes ; then
6657 _largefiles=yes
6658 def_dvdnav='#define CONFIG_DVDNAV 1'
6659 if test "$dvdnav_internal" = yes ; then
6660 cflags_libdvdnav="-Ilibdvdnav"
6661 inputmodules="dvdnav(internal) $inputmodules"
6662 else
6663 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6664 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6665 inputmodules="dvdnav $inputmodules"
6667 else
6668 def_dvdnav='#undef CONFIG_DVDNAV'
6669 noinputmodules="dvdnav $noinputmodules"
6671 echores "$_dvdnav"
6673 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6674 # Read dvdnav comment above.
6676 mak_enable () {
6677 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6678 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6679 nprefix=$3;
6680 for part in $list; do
6681 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6682 echo "${nprefix}_$part = yes"
6684 done
6687 #############################################################################
6688 echo "Creating config.mak"
6689 cat > config.mak << EOF
6690 # -------- Generated by configure -----------
6692 # Ensure that locale settings do not interfere with shell commands.
6693 export LC_ALL = C
6695 CONFIGURATION = $configuration
6697 CHARSET = $_charset
6698 DOC_LANGS = $language_doc
6699 DOC_LANG_ALL = $doc_lang_all
6700 MAN_LANGS = $language_man
6701 MAN_LANG_ALL = $man_lang_all
6702 MSG_LANGS = $language_msg
6703 MSG_LANG_ALL = $msg_lang_all
6705 prefix = \$(DESTDIR)$_prefix
6706 BINDIR = \$(DESTDIR)$_bindir
6707 DATADIR = \$(DESTDIR)$_datadir
6708 LIBDIR = \$(DESTDIR)$_libdir
6709 MANDIR = \$(DESTDIR)$_mandir
6710 CONFDIR = \$(DESTDIR)$_confdir
6711 LOCALEDIR = \$(DESTDIR)$_localedir
6713 AR = $_ar
6714 AS = $_cc
6715 CC = $_cc
6716 CXX = $_cc
6717 HOST_CC = $_host_cc
6718 INSTALL = $_install
6719 INSTALLSTRIP = $_install_strip
6720 WINDRES = $_windres
6722 CFLAGS = $WARNFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6723 CXXFLAGS = $WARNFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6724 DEPFLAGS = $DEPFLAGS
6726 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6727 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6728 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6729 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6730 CFLAGS_STACKREALIGN = $cflags_stackrealign
6732 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6733 EXTRALIBS_MPLAYER = $libs_mplayer
6735 GETCH = $_getch
6736 TIMER = $_timer
6738 EXESUF = $_exesuf
6739 EXESUFS_ALL = .exe
6741 ARCH = $arch
6742 $(mak_enable "$arch_all" "$arch" ARCH)
6743 $(mak_enable "$subarch_all" "$subarch" ARCH)
6744 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6746 MPLAYER = $_mplayer
6748 NEED_GETTIMEOFDAY = $need_gettimeofday
6749 NEED_GLOB = $need_glob
6750 NEED_MMAP = $need_mmap
6751 NEED_SETENV = $need_setenv
6752 NEED_SHMEM = $need_shmem
6753 NEED_STRSEP = $need_strsep
6754 NEED_SWAB = $need_swab
6755 NEED_VSSCANF = $need_vsscanf
6757 # features
6758 3DFX = $_3dfx
6759 AA = $_aa
6760 ALSA1X = $_alsa1x
6761 ALSA9 = $_alsa9
6762 ALSA5 = $_alsa5
6763 APPLE_IR = $_apple_ir
6764 APPLE_REMOTE = $_apple_remote
6765 ARTS = $_arts
6766 AUDIO_INPUT = $_audio_input
6767 BITMAP_FONT = $_bitmap_font
6768 BL = $_bl
6769 CACA = $_caca
6770 CDDA = $_cdda
6771 CDDB = $_cddb
6772 COREAUDIO = $_coreaudio
6773 COREVIDEO = $_corevideo
6774 DART = $_dart
6775 DGA = $_dga
6776 DIRECT3D = $_direct3d
6777 DIRECTFB = $_directfb
6778 DIRECTX = $_directx
6779 DVBIN = $_dvbin
6780 DVDNAV = $_dvdnav
6781 DVDNAV_INTERNAL = $dvdnav_internal
6782 DVDREAD = $_dvdread
6783 DVDREAD_INTERNAL = $_dvdread_internal
6784 DXR3 = $_dxr3
6785 ESD = $_esd
6786 FAAD = $_faad
6787 FASTMEMCPY = $_fastmemcpy
6788 FBDEV = $_fbdev
6789 FREETYPE = $_freetype
6790 FTP = $_ftp
6791 GIF = $_gif
6792 GGI = $_ggi
6793 GL = $_gl
6794 GL_WIN32 = $_gl_win32
6795 GL_X11 = $_gl_x11
6796 GL_SDL = $_gl_sdl
6797 MATRIXVIEW = $matrixview
6798 HAVE_POSIX_SELECT = $_posix_select
6799 HAVE_SYS_MMAN_H = $_mman
6800 IVTV = $_ivtv
6801 JACK = $_jack
6802 JOYSTICK = $_joystick
6803 JPEG = $_jpeg
6804 KAI = $_kai
6805 KVA = $_kva
6806 LADSPA = $_ladspa
6807 LIBA52 = $_liba52
6808 LIBASS = $_ass
6809 LIBBLURAY = $_bluray
6810 LIBBS2B = $_libbs2b
6811 LIBDCA = $_libdca
6812 LIBDV = $_libdv
6813 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6814 LIBMAD = $_mad
6815 LIBMENU = $_menu
6816 LIBMENU_DVBIN = $_menu_dvbin
6817 LIBNEMESI = $_nemesi
6818 LIBNUT = $_libnut
6819 LIBSMBCLIENT = $_smb
6820 LIBTHEORA = $_theora
6821 LIRC = $_lirc
6822 LIVE555 = $_live
6823 MACOSX_FINDER = $_macosx_finder
6824 MD5SUM = $_md5sum
6825 MGA = $_mga
6826 MNG = $_mng
6827 MP3LIB = $_mp3lib
6828 MPG123 = $_mpg123
6829 MUSEPACK = $_musepack
6830 NAS = $_nas
6831 NATIVE_RTSP = $_native_rtsp
6832 NETWORKING = $networking
6833 OPENAL = $_openal
6834 OSS = $_ossaudio
6835 PE_EXECUTABLE = $_pe_executable
6836 PNG = $_png
6837 PNM = $_pnm
6838 PRIORITY = $_priority
6839 PULSE = $_pulse
6840 PVR = $_pvr
6841 QTX_CODECS = $_qtx
6842 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6843 QTX_EMULATION = $_qtx_emulation
6844 QUARTZ = $_quartz
6845 RADIO=$_radio
6846 RADIO_CAPTURE=$_radio_capture
6847 REAL_CODECS = $_real
6848 S3FB = $_s3fb
6849 SDL = $_sdl
6850 SPEEX = $_speex
6851 STREAM_CACHE = $_stream_cache
6852 SGIAUDIO = $_sgiaudio
6853 SUNAUDIO = $_sunaudio
6854 SVGA = $_svga
6855 TDFXFB = $_tdfxfb
6856 TDFXVID = $_tdfxvid
6857 TGA = $_tga
6858 TV = $_tv
6859 TV_BSDBT848 = $_tv_bsdbt848
6860 TV_DSHOW = $_tv_dshow
6861 TV_V4L = $_tv_v4l
6862 TV_V4L1 = $_tv_v4l1
6863 TV_V4L2 = $_tv_v4l2
6864 UNRAR_EXEC = $_unrar_exec
6865 V4L2 = $_v4l2
6866 VCD = $_vcd
6867 VDPAU = $_vdpau
6868 VESA = $_vesa
6869 VORBIS = $_vorbis
6870 VSTREAM = $_vstream
6871 WII = $_wii
6872 WIN32DLL = $_win32dll
6873 WIN32WAVEOUT = $_win32waveout
6874 WIN32_EMULATION = $_win32_emulation
6875 X11 = $_x11
6876 XANIM_CODECS = $_xanim
6877 XMGA = $_xmga
6878 XMMS_PLUGINS = $_xmms
6879 XV = $_xv
6880 XVID4 = $_xvid
6881 XVMC = $_xvmc
6882 XVR100 = $_xvr100
6883 YUV4MPEG = $_yuv4mpeg
6885 # FFmpeg
6886 FFMPEG = $ffmpeg
6887 FFMPEG_EVAL_API = $ffmpeg_eval_api
6888 FFMPEG_INTERNALS = $ffmpeg_internals
6889 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6891 RANLIB = $_ranlib
6892 YASM = $_yasm
6893 YASMFLAGS = $YASMFLAGS
6895 CONFIG_VDPAU = $_vdpau
6896 CONFIG_XVMC = $_xvmc
6897 CONFIG_ZLIB = $_zlib
6899 HAVE_PTHREADS = $_pthreads
6900 HAVE_SHM = $_shm
6901 HAVE_W32THREADS = $_w32threads
6902 HAVE_YASM = $have_yasm
6906 #############################################################################
6908 ff_config_enable () {
6909 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6910 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6911 _nprefix=$3;
6912 test -z "$_nprefix" && _nprefix='CONFIG'
6913 for part in $list; do
6914 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6915 echo "#define ${_nprefix}_$part 1"
6916 else
6917 echo "#define ${_nprefix}_$part 0"
6919 done
6922 echo "Creating config.h"
6923 cat > $TMPH << EOF
6924 /*----------------------------------------------------------------------------
6925 ** This file has been automatically generated by configure any changes in it
6926 ** will be lost when you run configure again.
6927 ** Instead of modifying definitions here, use the --enable/--disable options
6928 ** of the configure script! See ./configure --help for details.
6929 *---------------------------------------------------------------------------*/
6931 #ifndef MPLAYER_CONFIG_H
6932 #define MPLAYER_CONFIG_H
6934 /* Undefine this if you do not want to select mono audio (left or right)
6935 with a stereo MPEG layer 2/3 audio stream. The command line option
6936 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6937 right-only), with 0 being the default.
6939 #define CONFIG_FAKE_MONO 1
6941 /* set up audio OUTBURST. Do not change this! */
6942 #define OUTBURST 512
6944 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6945 #undef FAST_OSD
6946 #undef FAST_OSD_TABLE
6950 #define CONFIGURATION "$configuration"
6952 #define MPLAYER_DATADIR "$_datadir"
6953 #define MPLAYER_CONFDIR "$_confdir"
6954 #define MPLAYER_LIBDIR "$_libdir"
6955 #define MPLAYER_LOCALEDIR "$_localedir"
6957 $def_translation
6959 /* definitions needed by included libraries */
6960 #define HAVE_INTTYPES_H 1
6961 /* libdvdcss */
6962 #define HAVE_ERRNO_H 1
6963 /* libdvdcss + libdvdread */
6964 #define HAVE_LIMITS_H 1
6965 /* libdvdcss */
6966 #define HAVE_UNISTD_H 1
6967 /* libdvdread */
6968 #define STDC_HEADERS 1
6969 #define HAVE_MEMCPY 1
6970 /* libdvdnav */
6971 #define READ_CACHE_TRACE 0
6972 /* libdvdread */
6973 #define HAVE_DLFCN_H 1
6974 $def_dvdcss
6977 /* system headers */
6978 $def_alloca_h
6979 $def_alsa_asoundlib_h
6980 $def_altivec_h
6981 $def_malloc_h
6982 $def_mman_h
6983 $def_mman_has_map_failed
6984 $def_soundcard_h
6985 $def_sys_asoundlib_h
6986 $def_sys_soundcard_h
6987 $def_sys_sysinfo_h
6988 $def_termios_h
6989 $def_termios_sys_h
6990 $def_winsock2_h
6993 /* system functions */
6994 $def_gethostbyname2
6995 $def_gettimeofday
6996 $def_glob
6997 $def_langinfo
6998 $def_lrintf
6999 $def_map_memalign
7000 $def_memalign
7001 $def_nanosleep
7002 $def_posix_select
7003 $def_select
7004 $def_setenv
7005 $def_setmode
7006 $def_shm
7007 $def_strsep
7008 $def_swab
7009 $def_sysi86
7010 $def_sysi86_iv
7011 $def_termcap
7012 $def_termios
7013 $def_vsscanf
7016 /* system-specific features */
7017 $def_asmalign_pot
7018 $def_builtin_expect
7019 $def_dl
7020 $def_dos_paths
7021 $def_extern_asm
7022 $def_extern_prefix
7023 $def_iconv
7024 $def_kstat
7025 $def_macosx_bundle
7026 $def_macosx_finder
7027 $def_named_asm_args
7028 $def_priority
7029 $def_quicktime
7030 $def_restrict_keyword
7031 $def_rtc
7032 $def_unrar_exec
7035 /* configurable options */
7036 $def_charset
7037 $def_crash_debug
7038 $def_debug
7039 $def_dynamic_plugins
7040 $def_fastmemcpy
7041 $def_menu
7042 $def_runtime_cpudetection
7043 $def_sighandler
7044 $def_sortsub
7045 $def_stream_cache
7046 $def_pthread_cache
7049 /* CPU stuff */
7050 #define __CPU__ $iproc
7051 $def_ebx_available
7052 $def_words_endian
7053 $def_bigendian
7054 $(ff_config_enable "$arch_all" "$arch" "ARCH")
7055 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
7056 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
7059 /* Blu-ray/DVD/VCD/CD */
7060 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
7061 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
7062 $def_bluray
7063 $def_bsdi_dvd
7064 $def_cddb
7065 $def_cdio
7066 $def_cdparanoia
7067 $def_cdrom
7068 $def_dvd
7069 $def_dvd_bsd
7070 $def_dvd_darwin
7071 $def_dvd_linux
7072 $def_dvd_openbsd
7073 $def_dvdio
7074 $def_dvdnav
7075 $def_dvdread
7076 $def_hpux_scsi_h
7077 $def_libcdio
7078 $def_sol_scsi_h
7079 $def_vcd
7082 /* codec libraries */
7083 $def_faad
7084 $def_liba52
7085 $def_libdca
7086 $def_libdv
7087 $def_mad
7088 $def_mp3lib
7089 $def_mpg123
7090 $def_musepack
7091 $def_speex
7092 $def_theora
7093 $def_tremor
7094 $def_vorbis
7095 $def_xvid
7096 $def_zlib
7098 $def_libnut
7101 /* binary codecs */
7102 $def_qtx
7103 $def_qtx_win32
7104 $def_real
7105 $def_win32_loader
7106 $def_win32dll
7107 $def_xanim
7108 $def_xmms
7109 #define BINARY_CODECS_PATH "$_codecsdir"
7110 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7113 /* Audio output drivers */
7114 $def_alsa
7115 $def_alsa1x
7116 $def_alsa5
7117 $def_alsa9
7118 $def_arts
7119 $def_coreaudio
7120 $def_dart
7121 $def_esd
7122 $def_esd_latency
7123 $def_jack
7124 $def_kai
7125 $def_nas
7126 $def_openal
7127 $def_openal_h
7128 $def_ossaudio
7129 $def_ossaudio_devdsp
7130 $def_ossaudio_devmixer
7131 $def_pulse
7132 $def_sgiaudio
7133 $def_sunaudio
7134 $def_win32waveout
7136 $def_ladspa
7137 $def_libbs2b
7140 /* input */
7141 $def_apple_ir
7142 $def_apple_remote
7143 $def_ioctl_bt848_h_name
7144 $def_ioctl_meteor_h_name
7145 $def_joystick
7146 $def_lirc
7147 $def_lircc
7148 $def_pvr
7149 $def_radio
7150 $def_radio_bsdbt848
7151 $def_radio_capture
7152 $def_radio_v4l
7153 $def_radio_v4l2
7154 $def_tv
7155 $def_tv_bsdbt848
7156 $def_tv_dshow
7157 $def_tv_v4l
7158 $def_tv_v4l1
7159 $def_tv_v4l2
7162 /* font stuff */
7163 $def_ass
7164 $def_bitmap_font
7165 $def_enca
7166 $def_fontconfig
7167 $def_freetype
7168 $def_fribidi
7171 /* networking */
7172 $def_closesocket
7173 $def_ftp
7174 $def_inet6
7175 $def_inet_aton
7176 $def_inet_pton
7177 $def_live
7178 $def_nemesi
7179 $def_networking
7180 $def_smb
7181 $def_socklen_t
7182 $def_vstream
7185 /* libvo options */
7186 $def_3dfx
7187 $def_aa
7188 $def_bl
7189 $def_caca
7190 $def_corevideo
7191 $def_dga
7192 $def_dga1
7193 $def_dga2
7194 $def_direct3d
7195 $def_directfb
7196 $def_directx
7197 $def_dvb
7198 $def_dvbin
7199 $def_dxr3
7200 $def_fbdev
7201 $def_ggi
7202 $def_ggiwmh
7203 $def_gif
7204 $def_gif_4
7205 $def_gif_tvt_hack
7206 $def_gl
7207 $def_gl_win32
7208 $def_gl_x11
7209 $def_gl_sdl
7210 $def_matrixview
7211 $def_ivtv
7212 $def_jpeg
7213 $def_kva
7214 $def_md5sum
7215 $def_mga
7216 $def_mng
7217 $def_png
7218 $def_pnm
7219 $def_quartz
7220 $def_s3fb
7221 $def_sdl
7222 $def_sdl_sdl_h
7223 $def_svga
7224 $def_tdfxfb
7225 $def_tdfxvid
7226 $def_tga
7227 $def_v4l2
7228 $def_vdpau
7229 $def_vesa
7230 $def_vm
7231 $def_wii
7232 $def_x11
7233 $def_xdpms
7234 $def_xf86keysym
7235 $def_xinerama
7236 $def_xmga
7237 $def_xss
7238 $def_xv
7239 $def_xvmc
7240 $def_xvr100
7241 $def_yuv4mpeg
7244 /* FFmpeg */
7245 $def_ffmpeg
7246 $def_ffmpeg_eval_api
7247 $def_ffmpeg_internals
7249 $def_arpa_inet_h
7250 $def_bswap
7251 $def_dcbzl
7252 $def_exp2
7253 $def_exp2f
7254 $def_fast_64bit
7255 $def_fast_unaligned
7256 $def_llrint
7257 $def_log2
7258 $def_log2f
7259 $def_lrint
7260 $def_memalign_hack
7261 $def_mkstemp
7262 $def_posix_memalign
7263 $def_pthreads
7264 $def_round
7265 $def_roundf
7266 $def_ten_operands
7267 $def_threads
7268 $def_truncf
7269 $def_xform_asm
7270 $def_yasm
7272 #define HAVE_INLINE_ASM 1
7274 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7275 #ifndef MP_DEBUG
7276 #define HAVE_EBP_AVAILABLE 1
7277 #else
7278 #define HAVE_EBP_AVAILABLE 0
7279 #endif
7281 #endif /* MPLAYER_CONFIG_H */
7284 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7285 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
7287 #############################################################################
7289 cat << EOF
7291 Config files successfully generated by ./configure $configuration !
7293 Install prefix: $_prefix
7294 Data directory: $_datadir
7295 Config direct.: $_confdir
7297 Byte order: $_byte_order
7298 Optimizing for: $_optimizing
7300 Languages:
7301 Messages (in addition to English): $language_msg
7302 Manual pages: $language_man
7303 Documentation: $language_doc
7305 Enabled optional drivers:
7306 Input: $inputmodules
7307 Codecs: $codecmodules
7308 Audio output: $aomodules
7309 Video output: $vomodules
7311 Disabled optional drivers:
7312 Input: $noinputmodules
7313 Codecs: $nocodecmodules
7314 Audio output: $noaomodules
7315 Video output: $novomodules
7317 'config.h' and 'config.mak' contain your configuration options.
7318 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7319 compile *** DO NOT REPORT BUGS if you tweak these files ***
7321 'make' will now compile MPlayer and 'make install' will install it.
7322 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7327 if test "$_mtrr" = yes ; then
7328 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7329 echo
7332 if ! x86_32; then
7333 cat <<EOF
7334 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7335 operating system ($system_name). You may encounter a few files that cannot
7336 be played due to missing open source video/audio codec support.
7342 cat <<EOF
7343 Check $TMPLOG if you wonder why an autodetection failed (make sure
7344 development headers/packages are installed).
7346 NOTE: The --enable-* parameters unconditionally force options on, completely
7347 skipping autodetection. This behavior is unlike what you may be used to from
7348 autoconf-based configure scripts that can decide to override you. This greater
7349 level of control comes at a price. You may have to provide the correct compiler
7350 and linker flags yourself.
7351 If you used one of these options (except --enable-menu and similar ones that
7352 turn on internal features) and experience a compilation or linking failure,
7353 make sure you have passed the necessary compiler/linker flags to configure.
7355 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7359 if test "$warn_cflags" = yes; then
7360 cat <<EOF
7362 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7363 but:
7365 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7367 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7368 To do so, execute 'CFLAGS= ./configure <options>'
7373 # Last move:
7374 rm -rf "$mplayer_tmpdir"