m_config.[ch]: mark some function parameters const
[mplayer/glamo.git] / configure
blob290c19add8f9e6fcf8e672b2d9d990e573070a63
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 $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
53 rm -f "$TMPEXE"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -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 statement_check() {
77 cat > $TMPC << EOF
78 #include <$1>
79 int main(void) { $2; return 0; }
80 EOF
81 shift
82 shift
83 compile_check $TMPC $@
86 header_check() {
87 cat > $TMPC << EOF
88 #include <$1>
89 int main(void) { return 0; }
90 EOF
91 shift
92 compile_check $TMPC $@
95 inline_asm_check() {
96 cat > $TMPC << EOF
97 int main(void) { __asm__ volatile ($1); return 0; }
98 EOF
99 shift
100 compile_check $TMPC $@
103 # The following checks are special and should only be used with broken and
104 # non-selfsufficient headers that do not include all of their dependencies.
106 header_check_broken() {
107 cat > $TMPC << EOF
108 #include <$1>
109 #include <$2>
110 int main(void) { return 0; }
112 shift
113 shift
114 compile_check $TMPC $@
117 statement_check_broken() {
118 cat > $TMPC << EOF
119 #include <$1>
120 #include <$2>
121 int main(void) { $3; return 0; }
123 shift 3
124 compile_check $TMPC $@
127 yasm_check() {
128 echo >> "$TMPLOG"
129 cat "$TMPS" >> "$TMPLOG"
130 echo >> "$TMPLOG"
131 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
132 rm -f "$TMPEXE"
133 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
134 TMPRES="$?"
135 echo >> "$TMPLOG"
136 echo >> "$TMPLOG"
137 return "$TMPRES"
140 tmp_run() {
141 "$TMPEXE" >> "$TMPLOG" 2>&1
144 # Display error message, flushes tempfile, exit
145 die () {
146 echo
147 echo "Error: $@" >&2
148 echo >&2
149 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
150 echo "Check \"$TMPLOG\" if you do not understand why it failed."
151 exit 1
154 # OS test booleans functions
155 issystem() {
156 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
158 aix() { issystem "AIX"; }
159 amigaos() { issystem "AmigaOS"; }
160 beos() { issystem "BEOS"; }
161 bsdos() { issystem "BSD/OS"; }
162 cygwin() { issystem "CYGWIN"; }
163 darwin() { issystem "Darwin"; }
164 dragonfly() { issystem "DragonFly"; }
165 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
166 gnu() { issystem "GNU"; }
167 hpux() { issystem "HP-UX"; }
168 irix() { issystem "IRIX"; }
169 linux() { issystem "Linux"; }
170 mingw32() { issystem "MINGW32"; }
171 morphos() { issystem "MorphOS"; }
172 netbsd() { issystem "NetBSD"; }
173 openbsd() { issystem "OpenBSD"; }
174 os2() { issystem "OS/2"; }
175 qnx() { issystem "QNX"; }
176 sunos() { issystem "SunOS"; }
177 win32() { cygwin || mingw32; }
179 # arch test boolean functions
180 # x86/x86pc is used by QNX
181 x86_32() {
182 case "$host_arch" in
183 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
184 *) return 1 ;;
185 esac
188 x86_64() {
189 case "$host_arch" in
190 x86_64|amd64) return 0 ;;
191 *) return 1 ;;
192 esac
195 x86() {
196 x86_32 || x86_64
199 ppc() {
200 case "$host_arch" in
201 ppc|ppc64|powerpc|powerpc64) return 0;;
202 *) return 1;;
203 esac
206 alpha() {
207 case "$host_arch" in
208 alpha*) return 0;;
209 *) return 1;;
210 esac
213 arm() {
214 case "$host_arch" in
215 arm*) return 0;;
216 *) return 1;;
217 esac
220 # Use this before starting a check
221 echocheck() {
222 echo "============ Checking for $@ ============" >> "$TMPLOG"
223 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
226 # Use this to echo the results of a check
227 echores() {
228 if test "$res_comment" ; then
229 res_comment="($res_comment)"
231 echo "Result is: $@ $res_comment" >> "$TMPLOG"
232 echo "##########################################" >> "$TMPLOG"
233 echo "" >> "$TMPLOG"
234 echo "$@ $res_comment"
235 res_comment=""
237 #############################################################################
239 # Check how echo works in this /bin/sh
240 case $(echo -n) in
241 -n) _echo_n= _echo_c='\c' ;; # SysV echo
242 *) _echo_n='-n ' _echo_c= ;; # BSD echo
243 esac
245 msg_lang_all=''
246 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
247 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")
248 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
250 show_help(){
251 cat << EOF
252 Usage: $0 [OPTIONS]...
254 Configuration:
255 -h, --help display this help and exit
257 Installation directories:
258 --prefix=DIR prefix directory for installation [/usr/local]
259 --bindir=DIR directory for installing binaries [PREFIX/bin]
260 --datadir=DIR directory for installing machine independent
261 data files (skins, etc) [PREFIX/share/mplayer]
262 --mandir=DIR directory for installing man pages [PREFIX/share/man]
263 --confdir=DIR directory for installing configuration files
264 [PREFIX/etc/mplayer]
265 --localedir=DIR directory for locale tree [PREFIX/share/locale]
266 --libdir=DIR directory for object code libraries [PREFIX/lib]
267 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
269 Optional features:
270 --disable-mplayer disable MPlayer compilation [enable]
271 --disable-largefiles disable support for files > 2GB [enable]
272 --enable-termcap use termcap database for key codes [autodetect]
273 --enable-termios use termios database for key codes [autodetect]
274 --disable-iconv disable iconv for encoding conversion [autodetect]
275 --disable-langinfo do not use langinfo [autodetect]
276 --enable-lirc enable LIRC (remote control) support [autodetect]
277 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
278 --enable-joystick enable joystick support [disable]
279 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
280 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
281 --disable-vm disable X video mode extensions [autodetect]
282 --disable-xf86keysym disable support for multimedia keys [autodetect]
283 --enable-radio enable radio interface [disable]
284 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
285 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
286 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
287 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
288 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
289 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
290 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
291 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
292 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
293 --disable-networking disable networking [enable]
294 --enable-winsock2_h enable winsock2_h [autodetect]
295 --enable-smb enable Samba (SMB) input [autodetect]
296 --enable-live enable LIVE555 Streaming Media [autodetect]
297 --enable-nemesi enable Nemesi Streaming Media [autodetect]
298 --disable-vcd disable VCD support [autodetect]
299 --disable-bluray disable Blu-ray support [autodetect]
300 --disable-dvdnav disable libdvdnav [autodetect]
301 --disable-dvdread disable libdvdread [autodetect]
302 --disable-dvdread-internal disable internal libdvdread [autodetect]
303 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
304 --disable-cdparanoia disable cdparanoia [autodetect]
305 --disable-cddb disable cddb [autodetect]
306 --disable-bitmap-font disable bitmap font support [enable]
307 --disable-freetype disable FreeType 2 font rendering [autodetect]
308 --disable-fontconfig disable fontconfig font lookup [autodetect]
309 --disable-unrarexec disable using of UnRAR executable [enabled]
310 --enable-menu enable OSD menu (not DVD menu) [disabled]
311 --disable-sortsub disable subtitle sorting [enabled]
312 --enable-fribidi enable the FriBiDi libs [autodetect]
313 --disable-enca disable ENCA charset oracle library [autodetect]
314 --disable-maemo disable maemo specific features [autodetect]
315 --enable-macosx-finder enable Mac OS X Finder invocation parameter
316 parsing [disabled]
317 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
318 --disable-inet6 disable IPv6 support [autodetect]
319 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
320 --disable-ftp disable FTP support [enabled]
321 --disable-vstream disable TiVo vstream client support [autodetect]
322 --disable-pthreads disable Posix threads support [autodetect]
323 --disable-w32threads disable Win32 threads support [autodetect]
324 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
325 --enable-rpath enable runtime linker path for extra libs [disabled]
327 Codecs:
328 --enable-gif enable GIF support [autodetect]
329 --enable-png enable PNG input/output support [autodetect]
330 --enable-mng enable MNG input support [autodetect]
331 --enable-jpeg enable JPEG input/output support [autodetect]
332 --enable-libcdio enable libcdio support [autodetect]
333 --enable-liblzo enable liblzo support [autodetect]
334 --disable-win32dll disable Win32 DLL support [autodetect]
335 --disable-qtx disable QuickTime codecs support [enabled]
336 --disable-xanim disable XAnim codecs support [enabled]
337 --disable-real disable RealPlayer codecs support [enabled]
338 --disable-xvid disable Xvid [autodetect]
339 --disable-x264 disable x264 [autodetect]
340 --disable-libnut disable libnut [autodetect]
341 --disable-ffmpeg_a disable static FFmpeg [autodetect]
342 --disable-ffmpeg_so disable shared FFmpeg [autodetect]
343 --disable-tremor-internal disable internal Tremor [enabled]
344 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
345 --enable-tremor enable external Tremor [autodetect]
346 --disable-libvorbis disable libvorbis support [autodetect]
347 --disable-speex disable Speex support [autodetect]
348 --enable-theora enable OggTheora libraries [autodetect]
349 --enable-faad enable external FAAD2 (AAC) [autodetect]
350 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
351 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
352 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
353 --disable-ladspa disable LADSPA plugin support [autodetect]
354 --disable-libbs2b disable libbs2b audio filter support [autodetect]
355 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
356 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
357 --disable-mad disable libmad (MPEG audio) support [autodetect]
358 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
359 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
360 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
361 --enable-xmms enable XMMS input plugin support [disabled]
362 --enable-libdca enable libdca support [autodetect]
363 --disable-mp3lib disable builtin mp3lib [autodetect]
364 --disable-liba52 disable liba52 [autodetect]
365 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
366 --disable-musepack disable musepack support [autodetect]
368 Video output:
369 --disable-vidix disable VIDIX [for x86 *nix]
370 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
371 Available: cyberblade, ivtv, mach64, mga, mga_crtc2,
372 nvidia, pm2, pm3, radeon, rage128, s3, sis, unichrome
373 --disable-vidix-pcidb disable VIDIX PCI device name database
374 --enable-dhahelper enable VIDIX dhahelper support
375 --enable-svgalib_helper enable VIDIX svgalib_helper support
376 --enable-gl enable OpenGL video output [autodetect]
377 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
378 --enable-dga2 enable DGA 2 support [autodetect]
379 --enable-dga1 enable DGA 1 support [autodetect]
380 --enable-vesa enable VESA video output [autodetect]
381 --enable-svga enable SVGAlib video output [autodetect]
382 --enable-sdl enable SDL video output [autodetect]
383 --enable-kva enable KVA video output [autodetect]
384 --enable-aa enable AAlib video output [autodetect]
385 --enable-caca enable CACA video output [autodetect]
386 --enable-ggi enable GGI video output [autodetect]
387 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
388 --enable-direct3d enable Direct3D video output [autodetect]
389 --enable-directx enable DirectX video output [autodetect]
390 --enable-dxr2 enable DXR2 video output [autodetect]
391 --enable-dxr3 enable DXR3/H+ video output [autodetect]
392 --enable-ivtv enable IVTV TV-Out video output [autodetect]
393 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
394 --enable-dvb enable DVB video output [autodetect]
395 --enable-mga enable mga_vid video output [autodetect]
396 --enable-xmga enable mga_vid X11 video output [autodetect]
397 --enable-xv enable Xv video output [autodetect]
398 --enable-xvmc enable XvMC acceleration [disable]
399 --enable-vdpau enable VDPAU acceleration [autodetect]
400 --enable-vm enable XF86VidMode support [autodetect]
401 --enable-xinerama enable Xinerama support [autodetect]
402 --enable-x11 enable X11 video output [autodetect]
403 --enable-xshape enable XShape support [autodetect]
404 --disable-xss disable screensaver support via xss [autodetect]
405 --enable-fbdev enable FBDev video output [autodetect]
406 --enable-mlib enable mediaLib video output (Solaris) [disable]
407 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
408 --enable-tdfxfb enable tdfxfb video output [disable]
409 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
410 --enable-wii enable Nintendo Wii/GameCube video output [disable]
411 --enable-directfb enable DirectFB video output [autodetect]
412 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
413 --enable-bl enable Blinkenlights video output [disable]
414 --enable-tdfxvid enable tdfx_vid video output [disable]
415 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
416 --disable-tga disable Targa video output [enable]
417 --disable-pnm disable PNM video output [enable]
418 --disable-md5sum disable md5sum video output [enable]
419 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
420 --disable-corevideo disable CoreVideo video output [autodetect]
421 --disable-quartz disable Quartz video output [autodetect]
423 Audio output:
424 --disable-alsa disable ALSA audio output [autodetect]
425 --disable-ossaudio disable OSS audio output [autodetect]
426 --disable-arts disable aRts audio output [autodetect]
427 --disable-esd disable esd audio output [autodetect]
428 --disable-pulse disable Pulseaudio audio output [autodetect]
429 --disable-jack disable JACK audio output [autodetect]
430 --enable-openal enable OpenAL audio output [disable]
431 --disable-nas disable NAS audio output [autodetect]
432 --disable-sgiaudio disable SGI audio output [autodetect]
433 --disable-sunaudio disable Sun audio output [autodetect]
434 --disable-kai disable KAI audio output [autodetect]
435 --disable-dart disable DART audio output [autodetect]
436 --disable-win32waveout disable Windows waveout audio output [autodetect]
437 --disable-coreaudio disable CoreAudio audio output [autodetect]
438 --disable-select disable using select() on the audio device [enable]
440 Language options:
441 --enable-translation enable support for translated output [disable]
442 --charset=charset convert the console messages to this character set
443 --language-doc=lang language to use for the documentation [en]
444 --language-man=lang language to use for the man pages [en]
445 --language-msg=lang extra languages for program messages [all]
446 --language=lang default language to use [en]
447 Specific options override --language. You can pass a list of languages separated
448 by whitespace or commas instead of a single language. Nonexisting translations
449 will be dropped from each list. All translations available in the list will be
450 installed. The value "all" will activate all translations. The LINGUAS
451 environment variable is honored. In all cases the fallback is English.
452 The program always supports English-language output; additional message
453 languages are only installed if --enable-translation is also specified.
454 Available values for --language-doc are: all $doc_lang_all
455 Available values for --language-man are: all $man_lang_all
456 Available values for --language-msg are: all $msg_lang_all
458 Miscellaneous options:
459 --enable-runtime-cpudetection enable runtime CPU detection [disable]
460 --enable-cross-compile enable cross-compilation [autodetect]
461 --cc=COMPILER C compiler to build MPlayer [gcc]
462 --host-cc=COMPILER C compiler for tools needed while building [gcc]
463 --as=ASSEMBLER assembler to build MPlayer [as]
464 --nm=NM nm tool to build MPlayer [nm]
465 --yasm=YASM Yasm assembler to build MPlayer [yasm]
466 --ar=AR librarian to build MPlayer [ar]
467 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
468 --windres=WINDRES windres to build MPlayer [windres]
469 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
470 --enable-static build a statically linked binary
471 --with-install=PATH path to a custom install program
473 Advanced options:
474 --enable-mmx enable MMX [autodetect]
475 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
476 --enable-3dnow enable 3DNow! [autodetect]
477 --enable-3dnowext enable extended 3DNow! [autodetect]
478 --enable-sse enable SSE [autodetect]
479 --enable-sse2 enable SSE2 [autodetect]
480 --enable-ssse3 enable SSSE3 [autodetect]
481 --enable-shm enable shm [autodetect]
482 --enable-altivec enable AltiVec (PowerPC) [autodetect]
483 --enable-armv5te enable DSP extensions (ARM) [autodetect]
484 --enable-armv6 enable ARMv6 (ARM) [autodetect]
485 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
486 --enable-armvfp enable ARM VFP (ARM) [autodetect]
487 --enable-neon enable NEON (ARM) [autodetect]
488 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
489 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
490 --enable-big-endian force byte order to big-endian [autodetect]
491 --enable-debug[=1-3] compile-in debugging information [disable]
492 --enable-profile compile-in profiling information [disable]
493 --disable-sighandler disable sighandler for crashes [enable]
494 --enable-crash-debug enable automatic gdb attach on crash [disable]
495 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
496 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
498 Use these options if autodetection fails:
499 --extra-cflags=FLAGS extra CFLAGS
500 --extra-ldflags=FLAGS extra LDFLAGS
501 --extra-libs=FLAGS extra linker flags
502 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
503 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
505 --with-freetype-config=PATH path to freetype-config
506 --with-glib-config=PATH path to glib*-config
507 --with-gtk-config=PATH path to gtk*-config
508 --with-sdl-config=PATH path to sdl*-config
509 --with-dvdnav-config=PATH path to dvdnav-config
510 --with-dvdread-config=PATH path to dvdread-config
512 This configure script is NOT autoconf-based, even though its output is similar.
513 It will try to autodetect all configuration options. If you --enable an option
514 it will be forcefully turned on, skipping autodetection. This can break
515 compilation, so you need to know what you are doing.
517 exit 0
518 } #show_help()
520 # GOTCHA: the variables below defines the default behavior for autodetection
521 # and have - unless stated otherwise - at least 2 states : yes no
522 # If autodetection is available then the third state is: auto
523 _mmx=auto
524 _3dnow=auto
525 _3dnowext=auto
526 _mmxext=auto
527 _sse=auto
528 _sse2=auto
529 _ssse3=auto
530 _cmov=auto
531 _fast_cmov=auto
532 _fast_clz=auto
533 _armv5te=auto
534 _armv6=auto
535 _armv6t2=auto
536 _armvfp=auto
537 neon=auto
538 _iwmmxt=auto
539 _mtrr=auto
540 _altivec=auto
541 _install=install
542 _ranlib=ranlib
543 _windres=windres
544 _cc=cc
545 _ar=ar
546 test "$CC" && _cc="$CC"
547 _as=auto
548 _nm=auto
549 _yasm=yasm
550 _runtime_cpudetection=no
551 _cross_compile=auto
552 _prefix="/usr/local"
553 ffmpeg=auto
554 ffmpeg_internals=no
555 _mencoder=no
556 _mplayer=yes
557 _x11=auto
558 _xshape=auto
559 _xss=auto
560 _dga1=auto
561 _dga2=auto
562 _xv=auto
563 _xvmc=no #auto when complete
564 _vdpau=auto
565 _sdl=auto
566 _kva=auto
567 _direct3d=auto
568 _directx=auto
569 _win32waveout=auto
570 _nas=auto
571 _png=auto
572 _mng=auto
573 _jpeg=auto
574 _pnm=yes
575 _md5sum=yes
576 _yuv4mpeg=yes
577 _gif=auto
578 _gl=auto
579 matrixview=yes
580 _ggi=auto
581 _ggiwmh=auto
582 _aa=auto
583 _caca=auto
584 _svga=auto
585 _vesa=auto
586 _fbdev=auto
587 _dvb=auto
588 _dxr2=auto
589 _dxr3=auto
590 _ivtv=auto
591 _v4l2=auto
592 _iconv=auto
593 _langinfo=auto
594 _rtc=auto
595 _ossaudio=auto
596 _arts=auto
597 _esd=auto
598 _pulse=auto
599 _jack=auto
600 _kai=auto
601 _dart=auto
602 _openal=no
603 _libcdio=auto
604 _liblzo=auto
605 _mad=auto
606 _mp3lame=auto
607 _toolame=auto
608 _twolame=auto
609 _tremor=auto
610 _tremor_internal=yes
611 _tremor_low=no
612 _libvorbis=auto
613 _speex=auto
614 _theora=auto
615 _mpg123=auto
616 _mp3lib=auto
617 _liba52=auto
618 _libdca=auto
619 _libmpeg2=auto
620 _faad=auto
621 _faad_internal=auto
622 _faad_fixed=no
623 _faac=auto
624 _ladspa=auto
625 _libbs2b=auto
626 _xmms=no
627 _vcd=auto
628 _bluray=auto
629 _dvdnav=auto
630 _dvdnavconfig=dvdnav-config
631 _dvdreadconfig=dvdread-config
632 _dvdread=auto
633 _dvdread_internal=auto
634 _libdvdcss_internal=auto
635 _xanim=auto
636 _real=auto
637 _live=auto
638 _nemesi=auto
639 _native_rtsp=yes
640 _xinerama=auto
641 _mga=auto
642 _xmga=auto
643 _vm=auto
644 _xf86keysym=auto
645 _mlib=no #broken, thus disabled
646 _sgiaudio=auto
647 _sunaudio=auto
648 _alsa=auto
649 _fastmemcpy=yes
650 _unrar_exec=auto
651 _win32dll=auto
652 _select=yes
653 _radio=no
654 _radio_capture=no
655 _radio_v4l=auto
656 _radio_v4l2=auto
657 _radio_bsdbt848=auto
658 _tv=yes
659 _tv_v4l1=auto
660 _tv_v4l2=auto
661 _tv_bsdbt848=auto
662 _tv_dshow=auto
663 _pvr=auto
664 networking=yes
665 _winsock2_h=auto
666 _smb=auto
667 _vidix=auto
668 _vidix_pcidb=yes
669 _dhahelper=no
670 _svgalib_helper=no
671 _joystick=no
672 _xvid=auto
673 _x264=auto
674 _libnut=auto
675 _lirc=auto
676 _lircc=auto
677 _apple_remote=auto
678 _apple_ir=auto
679 _gui=no
680 _gtk1=no
681 _termcap=auto
682 _termios=auto
683 _3dfx=no
684 _s3fb=no
685 _wii=no
686 _tdfxfb=no
687 _tdfxvid=no
688 _xvr100=auto
689 _tga=yes
690 _directfb=auto
691 _zr=auto
692 _bl=no
693 _largefiles=yes
694 #language=en
695 _shm=auto
696 _translation=no
697 _charset="UTF-8"
698 _dynamic_plugins=no
699 _crash_debug=no
700 _sighandler=yes
701 _libdv=auto
702 _cdparanoia=auto
703 _cddb=auto
704 _big_endian=auto
705 _bitmap_font=yes
706 _freetype=auto
707 _fontconfig=auto
708 _menu=no
709 _qtx=auto
710 _maemo=auto
711 _coreaudio=auto
712 _corevideo=auto
713 _quartz=auto
714 quicktime=auto
715 _macosx_finder=no
716 _macosx_bundle=auto
717 _sortsub=yes
718 _freetypeconfig='freetype-config'
719 _fribidi=auto
720 _enca=auto
721 _inet6=auto
722 _gethostbyname2=auto
723 _ftp=auto
724 _musepack=auto
725 _vstream=auto
726 _pthreads=auto
727 _w32threads=auto
728 _ass=auto
729 _rpath=no
730 _asmalign_pot=auto
731 _stream_cache=yes
732 _priority=no
733 def_dos_paths="#define HAVE_DOS_PATHS 0"
734 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
735 def_priority="#undef CONFIG_PRIORITY"
736 def_pthread_cache="#undef PTHREAD_CACHE"
737 _need_shmem=yes
738 for ac_option do
739 case "$ac_option" in
740 --help|-help|-h)
741 show_help
743 --prefix=*)
744 _prefix=$(echo $ac_option | cut -d '=' -f 2)
746 --bindir=*)
747 _bindir=$(echo $ac_option | cut -d '=' -f 2)
749 --datadir=*)
750 _datadir=$(echo $ac_option | cut -d '=' -f 2)
752 --mandir=*)
753 _mandir=$(echo $ac_option | cut -d '=' -f 2)
755 --confdir=*)
756 _confdir=$(echo $ac_option | cut -d '=' -f 2)
758 --libdir=*)
759 _libdir=$(echo $ac_option | cut -d '=' -f 2)
761 --codecsdir=*)
762 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
764 --localedir=*)
765 _localedir=$(echo $ac_option | cut -d '=' -f 2)
768 --with-install=*)
769 _install=$(echo $ac_option | cut -d '=' -f 2 )
771 --with-xvmclib=*)
772 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
775 --with-sdl-config=*)
776 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
778 --with-freetype-config=*)
779 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
781 --with-gtk-config=*)
782 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
784 --with-glib-config=*)
785 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
787 --with-dvdnav-config=*)
788 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
790 --with-dvdread-config=*)
791 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
794 --extra-cflags=*)
795 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
797 --extra-ldflags=*)
798 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
800 --extra-libs=*)
801 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
803 --extra-libs-mplayer=*)
804 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
807 --target=*)
808 _target=$(echo $ac_option | cut -d '=' -f 2)
810 --cc=*)
811 _cc=$(echo $ac_option | cut -d '=' -f 2)
813 --host-cc=*)
814 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
816 --as=*)
817 _as=$(echo $ac_option | cut -d '=' -f 2)
819 --nm=*)
820 _nm=$(echo $ac_option | cut -d '=' -f 2)
822 --yasm=*)
823 _yasm=$(echo $ac_option | cut -d '=' -f 2)
825 --ar=*)
826 _ar=$(echo $ac_option | cut -d '=' -f 2)
828 --ranlib=*)
829 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
831 --windres=*)
832 _windres=$(echo $ac_option | cut -d '=' -f 2)
834 --charset=*)
835 _charset=$(echo $ac_option | cut -d '=' -f 2)
837 --language-doc=*)
838 language_doc=$(echo $ac_option | cut -d '=' -f 2)
840 --language-man=*)
841 language_man=$(echo $ac_option | cut -d '=' -f 2)
843 --language-msg=*)
844 language_msg=$(echo $ac_option | cut -d '=' -f 2)
846 --language=*)
847 language=$(echo $ac_option | cut -d '=' -f 2)
850 --enable-static)
851 _ld_static='-static'
853 --disable-static)
854 _ld_static=''
856 --enable-profile)
857 _profile='-p'
859 --disable-profile)
860 _profile=
862 --enable-debug)
863 _debug='-g'
865 --enable-debug=*)
866 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
868 --disable-debug)
869 _debug=
871 --enable-translation) _translation=yes ;;
872 --disable-translation) _translation=no ;;
873 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
874 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
875 --enable-cross-compile) _cross_compile=yes ;;
876 --disable-cross-compile) _cross_compile=no ;;
877 --enable-mplayer) _mplayer=yes ;;
878 --disable-mplayer) _mplayer=no ;;
879 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
880 --disable-dynamic-plugins) _dynamic_plugins=no ;;
881 --enable-x11) _x11=yes ;;
882 --disable-x11) _x11=no ;;
883 --enable-xshape) _xshape=yes ;;
884 --disable-xshape) _xshape=no ;;
885 --enable-xss) _xss=yes ;;
886 --disable-xss) _xss=no ;;
887 --enable-xv) _xv=yes ;;
888 --disable-xv) _xv=no ;;
889 --enable-xvmc) _xvmc=yes ;;
890 --disable-xvmc) _xvmc=no ;;
891 --enable-vdpau) _vdpau=yes ;;
892 --disable-vdpau) _vdpau=no ;;
893 --enable-sdl) _sdl=yes ;;
894 --disable-sdl) _sdl=no ;;
895 --enable-kva) _kva=yes ;;
896 --disable-kva) _kva=no ;;
897 --enable-direct3d) _direct3d=yes ;;
898 --disable-direct3d) _direct3d=no ;;
899 --enable-directx) _directx=yes ;;
900 --disable-directx) _directx=no ;;
901 --enable-win32waveout) _win32waveout=yes ;;
902 --disable-win32waveout) _win32waveout=no ;;
903 --enable-nas) _nas=yes ;;
904 --disable-nas) _nas=no ;;
905 --enable-png) _png=yes ;;
906 --disable-png) _png=no ;;
907 --enable-mng) _mng=yes ;;
908 --disable-mng) _mng=no ;;
909 --enable-jpeg) _jpeg=yes ;;
910 --disable-jpeg) _jpeg=no ;;
911 --enable-pnm) _pnm=yes ;;
912 --disable-pnm) _pnm=no ;;
913 --enable-md5sum) _md5sum=yes ;;
914 --disable-md5sum) _md5sum=no ;;
915 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
916 --disable-yuv4mpeg) _yuv4mpeg=no ;;
917 --enable-gif) _gif=yes ;;
918 --disable-gif) _gif=no ;;
919 --enable-gl) _gl=yes ;;
920 --disable-gl) _gl=no ;;
921 --enable-matrixview) matrixview=yes ;;
922 --disable-matrixview) matrixview=no ;;
923 --enable-ggi) _ggi=yes ;;
924 --disable-ggi) _ggi=no ;;
925 --enable-ggiwmh) _ggiwmh=yes ;;
926 --disable-ggiwmh) _ggiwmh=no ;;
927 --enable-aa) _aa=yes ;;
928 --disable-aa) _aa=no ;;
929 --enable-caca) _caca=yes ;;
930 --disable-caca) _caca=no ;;
931 --enable-svga) _svga=yes ;;
932 --disable-svga) _svga=no ;;
933 --enable-vesa) _vesa=yes ;;
934 --disable-vesa) _vesa=no ;;
935 --enable-fbdev) _fbdev=yes ;;
936 --disable-fbdev) _fbdev=no ;;
937 --enable-dvb) _dvb=yes ;;
938 --disable-dvb) _dvb=no ;;
939 --enable-dxr2) _dxr2=yes ;;
940 --disable-dxr2) _dxr2=no ;;
941 --enable-dxr3) _dxr3=yes ;;
942 --disable-dxr3) _dxr3=no ;;
943 --enable-ivtv) _ivtv=yes ;;
944 --disable-ivtv) _ivtv=no ;;
945 --enable-v4l2) _v4l2=yes ;;
946 --disable-v4l2) _v4l2=no ;;
947 --enable-iconv) _iconv=yes ;;
948 --disable-iconv) _iconv=no ;;
949 --enable-langinfo) _langinfo=yes ;;
950 --disable-langinfo) _langinfo=no ;;
951 --enable-rtc) _rtc=yes ;;
952 --disable-rtc) _rtc=no ;;
953 --enable-libdv) _libdv=yes ;;
954 --disable-libdv) _libdv=no ;;
955 --enable-ossaudio) _ossaudio=yes ;;
956 --disable-ossaudio) _ossaudio=no ;;
957 --enable-arts) _arts=yes ;;
958 --disable-arts) _arts=no ;;
959 --enable-esd) _esd=yes ;;
960 --disable-esd) _esd=no ;;
961 --enable-pulse) _pulse=yes ;;
962 --disable-pulse) _pulse=no ;;
963 --enable-jack) _jack=yes ;;
964 --disable-jack) _jack=no ;;
965 --enable-openal) _openal=yes ;;
966 --disable-openal) _openal=no ;;
967 --enable-kai) _kai=yes ;;
968 --disable-kai) _kai=no ;;
969 --enable-dart) _dart=yes ;;
970 --disable-dart) _dart=no ;;
971 --enable-mad) _mad=yes ;;
972 --disable-mad) _mad=no ;;
973 --enable-mp3lame) _mp3lame=yes ;;
974 --disable-mp3lame) _mp3lame=no ;;
975 --enable-toolame) _toolame=yes ;;
976 --disable-toolame) _toolame=no ;;
977 --enable-twolame) _twolame=yes ;;
978 --disable-twolame) _twolame=no ;;
979 --enable-libcdio) _libcdio=yes ;;
980 --disable-libcdio) _libcdio=no ;;
981 --enable-liblzo) _liblzo=yes ;;
982 --disable-liblzo) _liblzo=no ;;
983 --enable-libvorbis) _libvorbis=yes ;;
984 --disable-libvorbis) _libvorbis=no ;;
985 --enable-speex) _speex=yes ;;
986 --disable-speex) _speex=no ;;
987 --enable-tremor) _tremor=yes ;;
988 --disable-tremor) _tremor=no ;;
989 --enable-tremor-internal) _tremor_internal=yes ;;
990 --disable-tremor-internal) _tremor_internal=no ;;
991 --enable-tremor-low) _tremor_low=yes ;;
992 --disable-tremor-low) _tremor_low=no ;;
993 --enable-theora) _theora=yes ;;
994 --disable-theora) _theora=no ;;
995 --enable-mpg123) _mpg123=yes ;;
996 --disable-mpg123) _mpg123=no ;;
997 --enable-mp3lib) _mp3lib=yes ;;
998 --disable-mp3lib) _mp3lib=no ;;
999 --enable-liba52) _liba52=yes ;;
1000 --disable-liba52) _liba52=no ;;
1001 --enable-libdca) _libdca=yes ;;
1002 --disable-libdca) _libdca=no ;;
1003 --enable-libmpeg2) _libmpeg2=yes ;;
1004 --disable-libmpeg2) _libmpeg2=no ;;
1005 --enable-musepack) _musepack=yes ;;
1006 --disable-musepack) _musepack=no ;;
1007 --enable-faad) _faad=yes ;;
1008 --disable-faad) _faad=no ;;
1009 --enable-faad-internal) _faad_internal=yes ;;
1010 --disable-faad-internal) _faad_internal=no ;;
1011 --enable-faad-fixed) _faad_fixed=yes ;;
1012 --disable-faad-fixed) _faad_fixed=no ;;
1013 --enable-faac) _faac=yes ;;
1014 --disable-faac) _faac=no ;;
1015 --enable-ladspa) _ladspa=yes ;;
1016 --disable-ladspa) _ladspa=no ;;
1017 --enable-libbs2b) _libbs2b=yes ;;
1018 --disable-libbs2b) _libbs2b=no ;;
1019 --enable-xmms) _xmms=yes ;;
1020 --disable-xmms) _xmms=no ;;
1021 --enable-vcd) _vcd=yes ;;
1022 --disable-vcd) _vcd=no ;;
1023 --enable-bluray) _bluray=yes ;;
1024 --disable-bluray) _bluray=no ;;
1025 --enable-dvdread) _dvdread=yes ;;
1026 --disable-dvdread) _dvdread=no ;;
1027 --enable-dvdread-internal) _dvdread_internal=yes ;;
1028 --disable-dvdread-internal) _dvdread_internal=no ;;
1029 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1030 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1031 --enable-dvdnav) _dvdnav=yes ;;
1032 --disable-dvdnav) _dvdnav=no ;;
1033 --enable-xanim) _xanim=yes ;;
1034 --disable-xanim) _xanim=no ;;
1035 --enable-real) _real=yes ;;
1036 --disable-real) _real=no ;;
1037 --enable-live) _live=yes ;;
1038 --disable-live) _live=no ;;
1039 --enable-nemesi) _nemesi=yes ;;
1040 --disable-nemesi) _nemesi=no ;;
1041 --enable-xinerama) _xinerama=yes ;;
1042 --disable-xinerama) _xinerama=no ;;
1043 --enable-mga) _mga=yes ;;
1044 --disable-mga) _mga=no ;;
1045 --enable-xmga) _xmga=yes ;;
1046 --disable-xmga) _xmga=no ;;
1047 --enable-vm) _vm=yes ;;
1048 --disable-vm) _vm=no ;;
1049 --enable-xf86keysym) _xf86keysym=yes ;;
1050 --disable-xf86keysym) _xf86keysym=no ;;
1051 --enable-mlib) _mlib=yes ;;
1052 --disable-mlib) _mlib=no ;;
1053 --enable-sunaudio) _sunaudio=yes ;;
1054 --disable-sunaudio) _sunaudio=no ;;
1055 --enable-sgiaudio) _sgiaudio=yes ;;
1056 --disable-sgiaudio) _sgiaudio=no ;;
1057 --enable-alsa) _alsa=yes ;;
1058 --disable-alsa) _alsa=no ;;
1059 --enable-tv) _tv=yes ;;
1060 --disable-tv) _tv=no ;;
1061 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1062 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1063 --enable-tv-v4l1) _tv_v4l1=yes ;;
1064 --disable-tv-v4l1) _tv_v4l1=no ;;
1065 --enable-tv-v4l2) _tv_v4l2=yes ;;
1066 --disable-tv-v4l2) _tv_v4l2=no ;;
1067 --enable-tv-dshow) _tv_dshow=yes ;;
1068 --disable-tv-dshow) _tv_dshow=no ;;
1069 --enable-radio) _radio=yes ;;
1070 --enable-radio-capture) _radio_capture=yes ;;
1071 --disable-radio-capture) _radio_capture=no ;;
1072 --disable-radio) _radio=no ;;
1073 --enable-radio-v4l) _radio_v4l=yes ;;
1074 --disable-radio-v4l) _radio_v4l=no ;;
1075 --enable-radio-v4l2) _radio_v4l2=yes ;;
1076 --disable-radio-v4l2) _radio_v4l2=no ;;
1077 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1078 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1079 --enable-pvr) _pvr=yes ;;
1080 --disable-pvr) _pvr=no ;;
1081 --enable-fastmemcpy) _fastmemcpy=yes ;;
1082 --disable-fastmemcpy) _fastmemcpy=no ;;
1083 --enable-networking) networking=yes ;;
1084 --disable-networking) networking=no ;;
1085 --enable-winsock2_h) _winsock2_h=yes ;;
1086 --disable-winsock2_h) _winsock2_h=no ;;
1087 --enable-smb) _smb=yes ;;
1088 --disable-smb) _smb=no ;;
1089 --enable-vidix) _vidix=yes ;;
1090 --disable-vidix) _vidix=no ;;
1091 --with-vidix-drivers=*)
1092 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1094 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1095 --enable-dhahelper) _dhahelper=yes ;;
1096 --disable-dhahelper) _dhahelper=no ;;
1097 --enable-svgalib_helper) _svgalib_helper=yes ;;
1098 --disable-svgalib_helper) _svgalib_helper=no ;;
1099 --enable-joystick) _joystick=yes ;;
1100 --disable-joystick) _joystick=no ;;
1101 --enable-xvid) _xvid=yes ;;
1102 --disable-xvid) _xvid=no ;;
1103 --enable-x264) _x264=yes ;;
1104 --disable-x264) _x264=no ;;
1105 --enable-libnut) _libnut=yes ;;
1106 --disable-libnut) _libnut=no ;;
1107 --enable-ffmpeg) ffmpeg=yes ;;
1108 --disable-ffmpeg) ffmpeg=no ;;
1109 --ffmpeg-source-dir=*)
1110 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1112 --enable-lirc) _lirc=yes ;;
1113 --disable-lirc) _lirc=no ;;
1114 --enable-lircc) _lircc=yes ;;
1115 --disable-lircc) _lircc=no ;;
1116 --enable-apple-remote) _apple_remote=yes ;;
1117 --disable-apple-remote) _apple_remote=no ;;
1118 --enable-apple-ir) _apple_ir=yes ;;
1119 --disable-apple-ir) _apple_ir=no ;;
1120 --enable-gui) _gui=yes ;;
1121 --disable-gui) _gui=no ;;
1122 --enable-gtk1) _gtk1=yes ;;
1123 --disable-gtk1) _gtk1=no ;;
1124 --enable-termcap) _termcap=yes ;;
1125 --disable-termcap) _termcap=no ;;
1126 --enable-termios) _termios=yes ;;
1127 --disable-termios) _termios=no ;;
1128 --enable-3dfx) _3dfx=yes ;;
1129 --disable-3dfx) _3dfx=no ;;
1130 --enable-s3fb) _s3fb=yes ;;
1131 --disable-s3fb) _s3fb=no ;;
1132 --enable-wii) _wii=yes ;;
1133 --disable-wii) _wii=no ;;
1134 --enable-tdfxfb) _tdfxfb=yes ;;
1135 --disable-tdfxfb) _tdfxfb=no ;;
1136 --disable-tdfxvid) _tdfxvid=no ;;
1137 --enable-tdfxvid) _tdfxvid=yes ;;
1138 --disable-xvr100) _xvr100=no ;;
1139 --enable-xvr100) _xvr100=yes ;;
1140 --disable-tga) _tga=no ;;
1141 --enable-tga) _tga=yes ;;
1142 --enable-directfb) _directfb=yes ;;
1143 --disable-directfb) _directfb=no ;;
1144 --enable-zr) _zr=yes ;;
1145 --disable-zr) _zr=no ;;
1146 --enable-bl) _bl=yes ;;
1147 --disable-bl) _bl=no ;;
1148 --enable-mtrr) _mtrr=yes ;;
1149 --disable-mtrr) _mtrr=no ;;
1150 --enable-largefiles) _largefiles=yes ;;
1151 --disable-largefiles) _largefiles=no ;;
1152 --enable-shm) _shm=yes ;;
1153 --disable-shm) _shm=no ;;
1154 --enable-select) _select=yes ;;
1155 --disable-select) _select=no ;;
1156 --enable-cdparanoia) _cdparanoia=yes ;;
1157 --disable-cdparanoia) _cdparanoia=no ;;
1158 --enable-cddb) _cddb=yes ;;
1159 --disable-cddb) _cddb=no ;;
1160 --enable-big-endian) _big_endian=yes ;;
1161 --disable-big-endian) _big_endian=no ;;
1162 --enable-bitmap-font) _bitmap_font=yes ;;
1163 --disable-bitmap-font) _bitmap_font=no ;;
1164 --enable-freetype) _freetype=yes ;;
1165 --disable-freetype) _freetype=no ;;
1166 --enable-fontconfig) _fontconfig=yes ;;
1167 --disable-fontconfig) _fontconfig=no ;;
1168 --enable-unrarexec) _unrar_exec=yes ;;
1169 --disable-unrarexec) _unrar_exec=no ;;
1170 --enable-ftp) _ftp=yes ;;
1171 --disable-ftp) _ftp=no ;;
1172 --enable-vstream) _vstream=yes ;;
1173 --disable-vstream) _vstream=no ;;
1174 --enable-pthreads) _pthreads=yes ;;
1175 --disable-pthreads) _pthreads=no ;;
1176 --enable-w32threads) _w32threads=yes ;;
1177 --disable-w32threads) _w32threads=no ;;
1178 --enable-ass) _ass=yes ;;
1179 --disable-ass) _ass=no ;;
1180 --enable-rpath) _rpath=yes ;;
1181 --disable-rpath) _rpath=no ;;
1183 --enable-fribidi) _fribidi=yes ;;
1184 --disable-fribidi) _fribidi=no ;;
1186 --enable-enca) _enca=yes ;;
1187 --disable-enca) _enca=no ;;
1189 --enable-inet6) _inet6=yes ;;
1190 --disable-inet6) _inet6=no ;;
1192 --enable-gethostbyname2) _gethostbyname2=yes ;;
1193 --disable-gethostbyname2) _gethostbyname2=no ;;
1195 --enable-dga1) _dga1=yes ;;
1196 --disable-dga1) _dga1=no ;;
1197 --enable-dga2) _dga2=yes ;;
1198 --disable-dga2) _dga2=no ;;
1200 --enable-menu) _menu=yes ;;
1201 --disable-menu) _menu=no ;;
1203 --enable-qtx) _qtx=yes ;;
1204 --disable-qtx) _qtx=no ;;
1206 --enable-coreaudio) _coreaudio=yes ;;
1207 --disable-coreaudio) _coreaudio=no ;;
1208 --enable-corevideo) _corevideo=yes ;;
1209 --disable-corevideo) _corevideo=no ;;
1210 --enable-quartz) _quartz=yes ;;
1211 --disable-quartz) _quartz=no ;;
1212 --enable-macosx-finder) _macosx_finder=yes ;;
1213 --disable-macosx-finder) _macosx_finder=no ;;
1214 --enable-macosx-bundle) _macosx_bundle=yes ;;
1215 --disable-macosx-bundle) _macosx_bundle=no ;;
1217 --enable-maemo) _maemo=yes ;;
1218 --disable-maemo) _maemo=no ;;
1220 --enable-sortsub) _sortsub=yes ;;
1221 --disable-sortsub) _sortsub=no ;;
1223 --enable-crash-debug) _crash_debug=yes ;;
1224 --disable-crash-debug) _crash_debug=no ;;
1225 --enable-sighandler) _sighandler=yes ;;
1226 --disable-sighandler) _sighandler=no ;;
1227 --enable-win32dll) _win32dll=yes ;;
1228 --disable-win32dll) _win32dll=no ;;
1230 --enable-sse) _sse=yes ;;
1231 --disable-sse) _sse=no ;;
1232 --enable-sse2) _sse2=yes ;;
1233 --disable-sse2) _sse2=no ;;
1234 --enable-ssse3) _ssse3=yes ;;
1235 --disable-ssse3) _ssse3=no ;;
1236 --enable-mmxext) _mmxext=yes ;;
1237 --disable-mmxext) _mmxext=no ;;
1238 --enable-3dnow) _3dnow=yes ;;
1239 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1240 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1241 --disable-3dnowext) _3dnowext=no ;;
1242 --enable-cmov) _cmov=yes ;;
1243 --disable-cmov) _cmov=no ;;
1244 --enable-fast-cmov) _fast_cmov=yes ;;
1245 --disable-fast-cmov) _fast_cmov=no ;;
1246 --enable-fast-clz) _fast_clz=yes ;;
1247 --disable-fast-clz) _fast_clz=no ;;
1248 --enable-altivec) _altivec=yes ;;
1249 --disable-altivec) _altivec=no ;;
1250 --enable-armv5te) _armv5te=yes ;;
1251 --disable-armv5te) _armv5te=no ;;
1252 --enable-armv6) _armv6=yes ;;
1253 --disable-armv6) _armv6=no ;;
1254 --enable-armv6t2) _armv6t2=yes ;;
1255 --disable-armv6t2) _armv6t2=no ;;
1256 --enable-armvfp) _armvfp=yes ;;
1257 --disable-armvfp) _armvfp=no ;;
1258 --enable-neon) neon=yes ;;
1259 --disable-neon) neon=no ;;
1260 --enable-iwmmxt) _iwmmxt=yes ;;
1261 --disable-iwmmxt) _iwmmxt=no ;;
1262 --enable-mmx) _mmx=yes ;;
1263 --disable-mmx) # 3Dnow! and MMX2 require MMX
1264 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1267 echo "Unknown parameter: $ac_option"
1268 exit 1
1271 esac
1272 done
1274 if test "$_gui" = yes ; then
1275 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1276 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1279 # Atmos: moved this here, to be correct, if --prefix is specified
1280 test -z "$_bindir" && _bindir="$_prefix/bin"
1281 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1282 test -z "$_mandir" && _mandir="$_prefix/share/man"
1283 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1284 test -z "$_libdir" && _libdir="$_prefix/lib"
1285 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1287 # Determine our OS name and CPU architecture
1288 if test -z "$_target" ; then
1289 # OS name
1290 system_name=$(uname -s 2>&1)
1291 case "$system_name" in
1292 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1294 Haiku)
1295 system_name=BeOS
1297 IRIX*)
1298 system_name=IRIX
1300 GNU/kFreeBSD)
1301 system_name=FreeBSD
1303 HP-UX*)
1304 system_name=HP-UX
1306 [cC][yY][gG][wW][iI][nN]*)
1307 system_name=CYGWIN
1309 MINGW32*)
1310 system_name=MINGW32
1312 OS/2*)
1313 system_name=OS/2
1316 system_name="$system_name-UNKNOWN"
1318 esac
1321 # host's CPU/instruction set
1322 host_arch=$(uname -p 2>&1)
1323 case "$host_arch" in
1324 i386|sparc|ppc|alpha|arm|mips|vax)
1326 powerpc) # Darwin returns 'powerpc'
1327 host_arch=ppc
1329 *) # uname -p on Linux returns 'unknown' for the processor type,
1330 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1332 # Maybe uname -m (machine hardware name) returns something we
1333 # recognize.
1335 # x86/x86pc is used by QNX
1336 case "$(uname -m 2>&1)" in
1337 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 ;;
1338 ia64) host_arch=ia64 ;;
1339 macppc|ppc) host_arch=ppc ;;
1340 ppc64) host_arch=ppc64 ;;
1341 alpha) host_arch=alpha ;;
1342 sparc) host_arch=sparc ;;
1343 sparc64) host_arch=sparc64 ;;
1344 parisc*|hppa*|9000*) host_arch=hppa ;;
1345 arm*|zaurus|cats) host_arch=arm ;;
1346 sh3|sh4|sh4a) host_arch=sh ;;
1347 s390) host_arch=s390 ;;
1348 s390x) host_arch=s390x ;;
1349 *mips*) host_arch=mips ;;
1350 vax) host_arch=vax ;;
1351 xtensa*) host_arch=xtensa ;;
1352 *) host_arch=UNKNOWN ;;
1353 esac
1355 esac
1356 else # if test -z "$_target"
1357 system_name=$(echo $_target | cut -d '-' -f 2)
1358 case "$(echo $system_name | tr A-Z a-z)" in
1359 linux) system_name=Linux ;;
1360 freebsd) system_name=FreeBSD ;;
1361 gnu/kfreebsd) system_name=FreeBSD ;;
1362 netbsd) system_name=NetBSD ;;
1363 bsd/os) system_name=BSD/OS ;;
1364 openbsd) system_name=OpenBSD ;;
1365 dragonfly) system_name=DragonFly ;;
1366 sunos) system_name=SunOS ;;
1367 qnx) system_name=QNX ;;
1368 morphos) system_name=MorphOS ;;
1369 amigaos) system_name=AmigaOS ;;
1370 mingw32*) system_name=MINGW32 ;;
1371 esac
1372 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1373 host_arch=$(echo $_target | cut -d '-' -f 1)
1374 if test $(echo $host_arch) != "x86_64" ; then
1375 host_arch=$(echo $host_arch | tr '_' '-')
1379 extra_cflags="-I. $extra_cflags"
1380 _timer=timer-linux.c
1381 _getch=getch2.c
1382 if freebsd ; then
1383 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1384 extra_cflags="$extra_cflags -I/usr/local/include"
1387 if netbsd || dragonfly ; then
1388 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1389 extra_cflags="$extra_cflags -I/usr/pkg/include"
1392 if darwin; then
1393 extra_cflags="-mdynamic-no-pic $extra_cflags"
1394 if test "$(basename $_cc)" != "clang" ; then
1395 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1397 _timer=timer-darwin.c
1400 if aix ; then
1401 extra_ldflags="$extra_ldflags -lC"
1404 if irix ; then
1405 _ranlib='ar -r'
1406 elif linux ; then
1407 _ranlib='true'
1410 if win32 ; then
1411 _exesuf=".exe"
1412 extra_cflags="$extra_cflags -fno-common"
1413 # -lwinmm is always needed for osdep/timer-win2.c
1414 extra_ldflags="$extra_ldflags -lwinmm"
1415 _pe_executable=yes
1416 _timer=timer-win2.c
1417 _priority=yes
1418 def_dos_paths="#define HAVE_DOS_PATHS 1"
1419 def_priority="#define CONFIG_PRIORITY 1"
1422 if mingw32 ; then
1423 _getch=getch2-win.c
1424 _need_shmem=no
1427 if amigaos ; then
1428 _select=no
1429 _sighandler=no
1430 _stream_cache=no
1431 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1432 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1435 if qnx ; then
1436 extra_ldflags="$extra_ldflags -lph"
1439 if os2 ; then
1440 _exesuf=".exe"
1441 _getch=getch2-os2.c
1442 _need_shmem=no
1443 _priority=yes
1444 def_dos_paths="#define HAVE_DOS_PATHS 1"
1445 def_priority="#define CONFIG_PRIORITY 1"
1448 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1449 test "$tmpdir" && break
1450 done
1452 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1453 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1455 TMPLOG="config.log"
1456 TMPC="$mplayer_tmpdir/tmp.c"
1457 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1458 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1459 TMPH="$mplayer_tmpdir/tmp.h"
1460 TMPS="$mplayer_tmpdir/tmp.S"
1462 rm -f "$TMPLOG"
1463 echo configuration: $configuration > "$TMPLOG"
1464 echo >> "$TMPLOG"
1467 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1468 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1472 # Checking CC version...
1473 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1474 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1475 echocheck "$_cc version"
1476 cc_vendor=intel
1477 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1478 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1479 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1480 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1481 # TODO verify older icc/ecc compatibility
1482 case $cc_version in
1484 cc_version="v. ?.??, bad"
1485 cc_fail=yes
1487 10.1|11.0|11.1)
1488 cc_version="$cc_version, ok"
1491 cc_version="$cc_version, bad"
1492 cc_fail=yes
1494 esac
1495 echores "$cc_version"
1496 else
1497 for _cc in "$_cc" gcc cc ; do
1498 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1499 if test "$cc_name_tmp" = "gcc"; then
1500 cc_name=$cc_name_tmp
1501 echocheck "$_cc version"
1502 cc_vendor=gnu
1503 cc_version=$($_cc -dumpversion 2>&1)
1504 case $cc_version in
1505 2.96*)
1506 cc_fail=yes
1509 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1510 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1511 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1513 esac
1514 echores "$cc_version"
1515 break
1517 cc_name_tmp=$($_cc -v 2>&1 | head -n 1 | cut -d ' ' -f 1)
1518 if test "$cc_name_tmp" = "clang"; then
1519 echocheck "$_cc version"
1520 cc_vendor=clang
1521 cc_version=$($_cc -dumpversion 2>&1)
1522 res_comment="experimental support only"
1523 echores "clang $cc_version"
1524 break
1526 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1527 if test "$cc_name_tmp" = "Sun C"; then
1528 echocheck "$_cc version"
1529 cc_vendor=sun
1530 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1531 res_comment="experimental support only"
1532 echores "Sun C $cc_version"
1533 break
1535 done
1536 fi # icc
1537 test "$cc_fail" = yes && die "unsupported compiler version"
1539 if test -z "$_target" && x86 ; then
1540 cat > $TMPC << EOF
1541 int main(void) {
1542 int test[(int)sizeof(char *)-7];
1543 return 0;
1546 cc_check && host_arch=x86_64 || host_arch=i386
1549 echo "Detected operating system: $system_name"
1550 echo "Detected host architecture: $host_arch"
1552 echocheck "host cc"
1553 test "$_host_cc" || _host_cc=$_cc
1554 echores $_host_cc
1556 echocheck "cross compilation"
1557 if test $_cross_compile = auto ; then
1558 _cross_compile=yes
1559 cflag_check "" && "$TMPEXE" && _cross_compile=no
1561 echores $_cross_compile
1563 if test $_cross_compile = yes; then
1564 tmp_run() {
1565 return 0
1569 # ---
1571 # now that we know what compiler should be used for compilation, try to find
1572 # out which assembler is used by the $_cc compiler
1573 if test "$_as" = auto ; then
1574 _as=$($_cc -print-prog-name=as)
1575 test -z "$_as" && _as=as
1578 if test "$_nm" = auto ; then
1579 _nm=$($_cc -print-prog-name=nm)
1580 test -z "$_nm" && _nm=nm
1583 # XXX: this should be ok..
1584 _cpuinfo="echo"
1586 if test "$_runtime_cpudetection" = no ; then
1588 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1589 # FIXME: Remove the cygwin check once AMD CPUs are supported
1590 if test -r /proc/cpuinfo && ! cygwin; then
1591 # Linux with /proc mounted, extract CPU information from it
1592 _cpuinfo="cat /proc/cpuinfo"
1593 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1594 # FreeBSD with Linux emulation /proc mounted,
1595 # extract CPU information from it
1596 # Don't use it on x86 though, it never reports 3Dnow
1597 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1598 elif darwin && ! x86 ; then
1599 # use hostinfo on Darwin
1600 _cpuinfo="hostinfo"
1601 elif aix; then
1602 # use 'lsattr' on AIX
1603 _cpuinfo="lsattr -E -l proc0 -a type"
1604 elif x86; then
1605 # all other OSes try to extract CPU information from a small helper
1606 # program cpuinfo instead
1607 $_cc -o cpuinfo$_exesuf cpuinfo.c
1608 _cpuinfo="./cpuinfo$_exesuf"
1611 if x86 ; then
1612 # gather more CPU information
1613 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1614 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1615 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1616 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1617 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1619 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1621 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1622 -e s/xmm/sse/ -e s/kni/sse/)
1624 for ext in $pparam ; do
1625 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1626 done
1628 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1629 test $_sse = kernel_check && _mmxext=kernel_check
1631 echocheck "CPU vendor"
1632 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1634 echocheck "CPU type"
1635 echores "$pname"
1638 fi # test "$_runtime_cpudetection" = no
1640 if x86 && test "$_runtime_cpudetection" = no ; then
1641 extcheck() {
1642 if test "$1" = kernel_check ; then
1643 echocheck "kernel support of $2"
1644 cat > $TMPC <<EOF
1645 #include <stdlib.h>
1646 #include <signal.h>
1647 static void catch(int sig) { exit(1); }
1648 int main(void) {
1649 signal(SIGILL, catch);
1650 __asm__ volatile ("$3":::"memory"); return 0;
1654 if cc_check && tmp_run ; then
1655 eval _$2=yes
1656 echores "yes"
1657 _optimizing="$_optimizing $2"
1658 return 0
1659 else
1660 eval _$2=no
1661 echores "failed"
1662 echo "It seems that your kernel does not correctly support $2."
1663 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1664 return 1
1667 return 0
1670 extcheck $_mmx "mmx" "emms"
1671 extcheck $_mmxext "mmxext" "sfence"
1672 extcheck $_3dnow "3dnow" "femms"
1673 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1674 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1675 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1676 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1677 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1679 echocheck "mtrr support"
1680 if test "$_mtrr" = kernel_check ; then
1681 _mtrr="yes"
1682 _optimizing="$_optimizing mtrr"
1684 echores "$_mtrr"
1686 if test "$_gcc3_ext" != ""; then
1687 # if we had to disable sse/sse2 because the active kernel does not
1688 # support this instruction set extension, we also have to tell
1689 # gcc3 to not generate sse/sse2 instructions for normal C code
1690 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1696 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1697 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1698 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1699 subarch_all='X86_32 X86_64 PPC64'
1700 case "$host_arch" in
1701 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1702 arch='x86'
1703 subarch='x86_32'
1704 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1705 iproc=486
1706 proc=i486
1709 if test "$_runtime_cpudetection" = no ; then
1710 case "$pvendor" in
1711 AuthenticAMD)
1712 case "$pfamily" in
1713 3) proc=i386 iproc=386 ;;
1714 4) proc=i486 iproc=486 ;;
1715 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1716 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1717 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1718 proc=k6-3
1719 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1720 proc=geode
1721 elif test "$pmodel" -ge 8; then
1722 proc=k6-2
1723 elif test "$pmodel" -ge 6; then
1724 proc=k6
1725 else
1726 proc=i586
1729 6) iproc=686
1730 # It's a bit difficult to determine the correct type of Family 6
1731 # AMD CPUs just from their signature. Instead, we check directly
1732 # whether it supports SSE.
1733 if test "$_sse" = yes; then
1734 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1735 proc=athlon-xp
1736 else
1737 # Again, gcc treats athlon and athlon-tbird similarly.
1738 proc=athlon
1741 15) iproc=686
1742 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1743 # caught and remedied in the optimization tests below.
1744 proc=k8
1747 *) proc=amdfam10 iproc=686
1748 test $_fast_clz = "auto" && _fast_clz=yes
1750 esac
1752 GenuineIntel)
1753 case "$pfamily" in
1754 3) proc=i386 iproc=386 ;;
1755 4) proc=i486 iproc=486 ;;
1756 5) iproc=586
1757 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1758 proc=pentium-mmx # 4 is desktop, 8 is mobile
1759 else
1760 proc=i586
1763 6) iproc=686
1764 if test "$pmodel" -ge 15; then
1765 proc=core2
1766 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1767 proc=pentium-m
1768 elif test "$pmodel" -ge 7; then
1769 proc=pentium3
1770 elif test "$pmodel" -ge 3; then
1771 proc=pentium2
1772 else
1773 proc=i686
1775 test $_fast_clz = "auto" && _fast_clz=yes
1777 15) iproc=686
1778 # A nocona in 32-bit mode has no more capabilities than a prescott.
1779 if test "$pmodel" -ge 3; then
1780 proc=prescott
1781 else
1782 proc=pentium4
1783 test $_fast_clz = "auto" && _fast_clz=yes
1785 test $_fast_cmov = "auto" && _fast_cmov=no
1787 *) proc=prescott iproc=686 ;;
1788 esac
1790 CentaurHauls)
1791 case "$pfamily" in
1792 5) iproc=586
1793 if test "$pmodel" -ge 8; then
1794 proc=winchip2
1795 elif test "$pmodel" -ge 4; then
1796 proc=winchip-c6
1797 else
1798 proc=i586
1801 6) iproc=686
1802 if test "$pmodel" -ge 9; then
1803 proc=c3-2
1804 else
1805 proc=c3
1806 iproc=586
1809 *) proc=i686 iproc=i686 ;;
1810 esac
1812 unknown)
1813 case "$pfamily" in
1814 3) proc=i386 iproc=386 ;;
1815 4) proc=i486 iproc=486 ;;
1816 *) proc=i586 iproc=586 ;;
1817 esac
1820 proc=i586 iproc=586 ;;
1821 esac
1822 test $_fast_clz = "auto" && _fast_clz=no
1823 fi # test "$_runtime_cpudetection" = no
1826 # check that gcc supports our CPU, if not, fall back to earlier ones
1827 # LGB: check -mcpu and -march swithing step by step with enabling
1828 # to fall back till 386.
1830 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1832 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1833 cpuopt=-mtune
1834 else
1835 cpuopt=-mcpu
1838 echocheck "GCC & CPU optimization abilities"
1839 if test "$_runtime_cpudetection" = no ; then
1840 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1841 cflag_check -march=native && proc=native
1843 if test "$proc" = "amdfam10"; then
1844 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1846 if test "$proc" = "k8"; then
1847 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1849 if test "$proc" = "athlon-xp"; then
1850 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1852 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1853 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1855 if test "$proc" = "k6" || test "$proc" = "c3"; then
1856 if ! cflag_check -march=$proc $cpuopt=$proc; then
1857 if cflag_check -march=i586 $cpuopt=i686; then
1858 proc=i586-i686
1859 else
1860 proc=i586
1864 if test "$proc" = "prescott" ; then
1865 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1867 if test "$proc" = "core2" ; then
1868 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1870 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
1871 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1873 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1874 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1876 if test "$proc" = "i586"; then
1877 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1879 if test "$proc" = "i486" ; then
1880 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1882 if test "$proc" = "i386" ; then
1883 cflag_check -march=$proc $cpuopt=$proc || proc=error
1885 if test "$proc" = "error" ; then
1886 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1887 _mcpu=""
1888 _march=""
1889 _optimizing=""
1890 elif test "$proc" = "i586-i686"; then
1891 _march="-march=i586"
1892 _mcpu="$cpuopt=i686"
1893 _optimizing="$proc"
1894 else
1895 _march="-march=$proc"
1896 _mcpu="$cpuopt=$proc"
1897 _optimizing="$proc"
1899 else # if test "$_runtime_cpudetection" = no
1900 _mcpu="$cpuopt=generic"
1901 # at least i486 required, for bswap instruction
1902 _march="-march=i486"
1903 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1904 cflag_check $_mcpu || _mcpu=""
1905 cflag_check $_march $_mcpu || _march=""
1908 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1909 ## autodetected mcpu/march parameters
1910 if test "$_target" ; then
1911 # TODO: it may be a good idea to check GCC and fall back in all cases
1912 if test "$host_arch" = "i586-i686"; then
1913 _march="-march=i586"
1914 _mcpu="$cpuopt=i686"
1915 else
1916 _march="-march=$host_arch"
1917 _mcpu="$cpuopt=$host_arch"
1920 proc="$host_arch"
1922 case "$proc" in
1923 i386) iproc=386 ;;
1924 i486) iproc=486 ;;
1925 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1926 i686|athlon*|pentium*) iproc=686 ;;
1927 *) iproc=586 ;;
1928 esac
1931 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1932 _fast_cmov="yes"
1933 else
1934 _fast_cmov="no"
1936 test $_fast_clz = "auto" && _fast_clz=yes
1938 echores "$proc"
1941 ia64)
1942 arch='ia64'
1943 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1944 iproc='ia64'
1947 x86_64|amd64)
1948 arch='x86'
1949 subarch='x86_64'
1950 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1951 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1952 iproc='x86_64'
1954 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1955 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1956 cpuopt=-mtune
1957 else
1958 cpuopt=-mcpu
1960 if test "$_runtime_cpudetection" = no ; then
1961 case "$pvendor" in
1962 AuthenticAMD)
1963 case "$pfamily" in
1964 15) proc=k8
1965 test $_fast_clz = "auto" && _fast_clz=no
1967 *) proc=amdfam10;;
1968 esac
1970 GenuineIntel)
1971 case "$pfamily" in
1972 6) proc=core2;;
1974 # 64-bit prescotts exist, but as far as GCC is concerned they
1975 # have the same capabilities as a nocona.
1976 proc=nocona
1977 test $_fast_cmov = "auto" && _fast_cmov=no
1978 test $_fast_clz = "auto" && _fast_clz=no
1980 esac
1983 proc=error;;
1984 esac
1985 fi # test "$_runtime_cpudetection" = no
1987 echocheck "GCC & CPU optimization abilities"
1988 # This is a stripped-down version of the i386 fallback.
1989 if test "$_runtime_cpudetection" = no ; then
1990 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1991 cflag_check -march=native && proc=native
1993 # --- AMD processors ---
1994 if test "$proc" = "amdfam10"; then
1995 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1997 if test "$proc" = "k8"; then
1998 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2000 # This will fail if gcc version < 3.3, which is ok because earlier
2001 # versions don't really support 64-bit on amd64.
2002 # Is this a valid assumption? -Corey
2003 if test "$proc" = "athlon-xp"; then
2004 cflag_check -march=$proc $cpuopt=$proc || proc=error
2006 # --- Intel processors ---
2007 if test "$proc" = "core2"; then
2008 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
2010 if test "$proc" = "x86-64"; then
2011 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
2013 if test "$proc" = "nocona"; then
2014 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
2016 if test "$proc" = "pentium4"; then
2017 cflag_check -march=$proc $cpuopt=$proc || proc=error
2020 _march="-march=$proc"
2021 _mcpu="$cpuopt=$proc"
2022 if test "$proc" = "error" ; then
2023 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2024 _mcpu=""
2025 _march=""
2027 else # if test "$_runtime_cpudetection" = no
2028 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2029 _march="-march=x86-64"
2030 _mcpu="$cpuopt=generic"
2031 cflag_check $_mcpu || _mcpu="x86-64"
2032 cflag_check $_mcpu || _mcpu=""
2033 cflag_check $_march $_mcpu || _march=""
2036 _optimizing="$proc"
2037 test $_fast_cmov = "auto" && _fast_cmov=yes
2038 test $_fast_clz = "auto" && _fast_clz=yes
2040 echores "$proc"
2043 sparc|sparc64)
2044 arch='sparc'
2045 iproc='sparc'
2046 if test "$host_arch" = "sparc64" ; then
2047 _vis='yes'
2048 proc='ultrasparc'
2049 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2050 elif sunos ; then
2051 echocheck "CPU type"
2052 karch=$(uname -m)
2053 case "$(echo $karch)" in
2054 sun4) proc=v7 ;;
2055 sun4c) proc=v7 ;;
2056 sun4d) proc=v8 ;;
2057 sun4m) proc=v8 ;;
2058 sun4u) proc=ultrasparc _vis='yes' ;;
2059 sun4v) proc=v9 ;;
2060 *) proc=v8 ;;
2061 esac
2062 echores "$proc"
2063 else
2064 proc=v8
2066 _mcpu="-mcpu=$proc"
2067 _optimizing="$proc"
2070 arm*)
2071 arch='arm'
2072 iproc='arm'
2075 avr32)
2076 arch='avr32'
2077 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2078 iproc='avr32'
2079 test $_fast_clz = "auto" && _fast_clz=yes
2082 sh|sh4)
2083 arch='sh4'
2084 iproc='sh4'
2087 ppc|ppc64|powerpc|powerpc64)
2088 arch='ppc'
2089 def_dcbzl='#define HAVE_DCBZL 0'
2090 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2091 iproc='ppc'
2093 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2094 subarch='ppc64'
2095 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2097 echocheck "CPU type"
2098 case $system_name in
2099 Linux)
2100 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2101 if test -n "$($_cpuinfo | grep altivec)"; then
2102 test $_altivec = auto && _altivec=yes
2105 Darwin)
2106 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2107 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2108 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2109 test $_altivec = auto && _altivec=yes
2112 NetBSD)
2113 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2114 case $cc_version in
2115 2*|3.0*|3.1*|3.2*|3.3*)
2118 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2119 test $_altivec = auto && _altivec=yes
2122 esac
2124 AIX)
2125 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2127 esac
2128 if test "$_altivec" = yes; then
2129 echores "$proc altivec"
2130 else
2131 _altivec=no
2132 echores "$proc"
2135 echocheck "GCC & CPU optimization abilities"
2137 if test -n "$proc"; then
2138 case "$proc" in
2139 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2140 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2141 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2142 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2143 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2144 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2145 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2146 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2147 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2148 *) ;;
2149 esac
2150 # gcc 3.1(.1) and up supports 7400 and 7450
2151 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2152 case "$proc" in
2153 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2154 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2155 *) ;;
2156 esac
2158 # gcc 3.2 and up supports 970
2159 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2160 case "$proc" in
2161 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2162 def_dcbzl='#define HAVE_DCBZL 1' ;;
2163 *) ;;
2164 esac
2166 # gcc 3.3 and up supports POWER4
2167 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2168 case "$proc" in
2169 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2170 *) ;;
2171 esac
2173 # gcc 3.4 and up supports 440*
2174 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2175 case "$proc" in
2176 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2177 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2178 *) ;;
2179 esac
2181 # gcc 4.0 and up supports POWER5
2182 if test "$_cc_major" -ge "4"; then
2183 case "$proc" in
2184 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2185 *) ;;
2186 esac
2190 if test -n "$_mcpu"; then
2191 _optimizing=$(echo $_mcpu | cut -c 8-)
2192 echores "$_optimizing"
2193 else
2194 echores "none"
2197 test $_fast_clz = "auto" && _fast_clz=yes
2201 alpha*)
2202 arch='alpha'
2203 iproc='alpha'
2204 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2206 echocheck "CPU type"
2207 cat > $TMPC << EOF
2208 int main(void) {
2209 unsigned long ver, mask;
2210 __asm__ ("implver %0" : "=r" (ver));
2211 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2212 printf("%ld-%x\n", ver, ~mask);
2213 return 0;
2216 $_cc -o "$TMPEXE" "$TMPC"
2217 case $("$TMPEXE") in
2219 0-0) proc="ev4"; _mvi="0";;
2220 1-0) proc="ev5"; _mvi="0";;
2221 1-1) proc="ev56"; _mvi="0";;
2222 1-101) proc="pca56"; _mvi="1";;
2223 2-303) proc="ev6"; _mvi="1";;
2224 2-307) proc="ev67"; _mvi="1";;
2225 2-1307) proc="ev68"; _mvi="1";;
2226 esac
2227 echores "$proc"
2229 echocheck "GCC & CPU optimization abilities"
2230 if test "$proc" = "ev68" ; then
2231 cc_check -mcpu=$proc || proc=ev67
2233 if test "$proc" = "ev67" ; then
2234 cc_check -mcpu=$proc || proc=ev6
2236 _mcpu="-mcpu=$proc"
2237 echores "$proc"
2239 test $_fast_clz = "auto" && _fast_clz=yes
2241 _optimizing="$proc"
2244 mips)
2245 arch='mips'
2246 iproc='mips'
2248 if irix ; then
2249 echocheck "CPU type"
2250 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2251 case "$(echo $proc)" in
2252 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2253 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2254 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2255 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2256 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2257 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2258 esac
2259 # gcc < 3.x does not support -mtune.
2260 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2261 _mcpu=''
2263 echores "$proc"
2266 test $_fast_clz = "auto" && _fast_clz=yes
2270 hppa)
2271 arch='pa_risc'
2272 iproc='PA-RISC'
2275 s390)
2276 arch='s390'
2277 iproc='390'
2280 s390x)
2281 arch='s390x'
2282 iproc='390x'
2285 vax)
2286 arch='vax'
2287 iproc='vax'
2290 xtensa)
2291 arch='xtensa'
2292 iproc='xtensa'
2295 generic)
2296 arch='generic'
2300 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2301 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2302 die "unsupported architecture $host_arch"
2304 esac # case "$host_arch" in
2306 if test "$_runtime_cpudetection" = yes ; then
2307 if x86 ; then
2308 test "$_cmov" != no && _cmov=yes
2309 x86_32 && _cmov=no
2310 test "$_mmx" != no && _mmx=yes
2311 test "$_3dnow" != no && _3dnow=yes
2312 test "$_3dnowext" != no && _3dnowext=yes
2313 test "$_mmxext" != no && _mmxext=yes
2314 test "$_sse" != no && _sse=yes
2315 test "$_sse2" != no && _sse2=yes
2316 test "$_ssse3" != no && _ssse3=yes
2317 test "$_mtrr" != no && _mtrr=yes
2319 if ppc; then
2320 _altivec=yes
2325 # endian testing
2326 echocheck "byte order"
2327 if test "$_big_endian" = auto ; then
2328 cat > $TMPC <<EOF
2329 short ascii_name[] = {
2330 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2331 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2332 int main(void) { return (long)ascii_name; }
2334 if cc_check ; then
2335 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2336 _big_endian=yes
2337 else
2338 _big_endian=no
2340 else
2341 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2344 if test "$_big_endian" = yes ; then
2345 _byte_order='big-endian'
2346 def_words_endian='#define WORDS_BIGENDIAN 1'
2347 def_bigendian='#define HAVE_BIGENDIAN 1'
2348 else
2349 _byte_order='little-endian'
2350 def_words_endian='#undef WORDS_BIGENDIAN'
2351 def_bigendian='#define HAVE_BIGENDIAN 0'
2353 echores "$_byte_order"
2356 echocheck "extern symbol prefix"
2357 cat > $TMPC << EOF
2358 int ff_extern;
2360 cc_check -c || die "Symbol mangling check failed."
2361 sym=$($_nm -P -g $TMPEXE)
2362 extern_prefix=${sym%%ff_extern*}
2363 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2364 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2365 echores $extern_prefix
2368 echocheck "assembler support of -pipe option"
2369 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2370 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2373 echocheck "compiler support of named assembler arguments"
2374 _named_asm_args=yes
2375 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2376 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2377 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2378 _named_asm_args=no
2379 def_named_asm_args="#undef NAMED_ASM_ARGS"
2381 echores $_named_asm_args
2384 if darwin && test "$cc_vendor" = "gnu" ; then
2385 echocheck "GCC support of -mstackrealign"
2386 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2387 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2388 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2389 # wrong code with this flag, but this can be worked around by adding
2390 # -fno-unit-at-a-time as described in the blog post at
2391 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2392 cat > $TMPC << EOF
2393 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2394 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2396 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2397 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2398 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2399 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2400 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2403 # Checking for CFLAGS
2404 _install_strip="-s"
2405 if test "$_profile" != "" || test "$_debug" != "" ; then
2406 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2407 WARNFLAGS="-W -Wall"
2408 _install_strip=
2409 elif test -z "$CFLAGS" ; then
2410 if test "$cc_vendor" = "intel" ; then
2411 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2412 WARNFLAGS="-wd167 -wd556 -wd144"
2413 elif test "$cc_vendor" = "sun" ; then
2414 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2415 elif test "$cc_vendor" = "clang"; then
2416 CFLAGS="-O2 $_march $_pipe"
2417 elif test "$cc_vendor" != "gnu" ; then
2418 CFLAGS="-O2 $_march $_mcpu $_pipe"
2419 else
2420 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2421 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2422 extra_ldflags="$extra_ldflags -ffast-math"
2424 else
2425 warn_cflags=yes
2428 if test "$cc_vendor" = "gnu" ; then
2429 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2430 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2431 # that's the only variable specific to C now, and this option is not valid
2432 # for C++.
2433 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2434 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2435 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2436 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2437 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2438 else
2439 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2442 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2443 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2446 if test -n "$LDFLAGS" ; then
2447 extra_ldflags="$extra_ldflags $LDFLAGS"
2448 warn_cflags=yes
2449 elif test "$cc_vendor" = "intel" ; then
2450 extra_ldflags="$extra_ldflags -i-static"
2452 if test -n "$CPPFLAGS" ; then
2453 extra_cflags="$extra_cflags $CPPFLAGS"
2454 warn_cflags=yes
2459 if x86_32 ; then
2460 # Checking assembler (_as) compatibility...
2461 # Added workaround for older as that reads from stdin by default - atmos
2462 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2463 echocheck "assembler ($_as $as_version)"
2465 _pref_as_version='2.9.1'
2466 echo 'nop' > $TMPS
2467 if test "$_mmx" = yes ; then
2468 echo 'emms' >> $TMPS
2470 if test "$_3dnow" = yes ; then
2471 _pref_as_version='2.10.1'
2472 echo 'femms' >> $TMPS
2474 if test "$_3dnowext" = yes ; then
2475 _pref_as_version='2.10.1'
2476 echo 'pswapd %mm0, %mm0' >> $TMPS
2478 if test "$_mmxext" = yes ; then
2479 _pref_as_version='2.10.1'
2480 echo 'movntq %mm0, (%eax)' >> $TMPS
2482 if test "$_sse" = yes ; then
2483 _pref_as_version='2.10.1'
2484 echo 'xorps %xmm0, %xmm0' >> $TMPS
2486 #if test "$_sse2" = yes ; then
2487 # _pref_as_version='2.11'
2488 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2490 if test "$_cmov" = yes ; then
2491 _pref_as_version='2.10.1'
2492 echo 'cmovb %eax, %ebx' >> $TMPS
2494 if test "$_ssse3" = yes ; then
2495 _pref_as_version='2.16.92'
2496 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2498 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2500 if test "$as_verc_fail" != yes ; then
2501 echores "ok"
2502 else
2503 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2504 echores "failed"
2505 die "obsolete binutils version"
2508 fi #if x86_32
2511 echocheck "PIC"
2512 pic=no
2513 cat > $TMPC << EOF
2514 int main(void) {
2515 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2516 #error PIC not enabled
2517 #endif
2518 return 0;
2521 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2522 echores $pic
2525 if x86 ; then
2527 echocheck ".align is a power of two"
2528 if test "$_asmalign_pot" = auto ; then
2529 _asmalign_pot=no
2530 inline_asm_check '".align 3"' && _asmalign_pot=yes
2532 if test "$_asmalign_pot" = "yes" ; then
2533 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2534 else
2535 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2537 echores $_asmalign_pot
2540 echocheck "10 assembler operands"
2541 ten_operands=no
2542 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2543 cat > $TMPC << EOF
2544 int main(void) {
2545 int x=0;
2546 __asm__ volatile(
2548 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2550 return 0;
2553 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2554 echores $ten_operands
2556 echocheck "ebx availability"
2557 ebx_available=no
2558 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2559 cat > $TMPC << EOF
2560 int main(void) {
2561 int x;
2562 __asm__ volatile(
2563 "xor %0, %0"
2564 :"=b"(x)
2565 // just adding ebx to clobber list seems unreliable with some
2566 // compilers, e.g. Haiku's gcc 2.95
2568 // and the above check does not work for OSX 64 bit...
2569 __asm__ volatile("":::"%ebx");
2570 return 0;
2573 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2574 echores $ebx_available
2577 echocheck "yasm"
2578 if test -z "$YASMFLAGS" ; then
2579 if darwin ; then
2580 x86_64 && objformat="macho64" || objformat="macho"
2581 elif win32 ; then
2582 objformat="win32"
2583 else
2584 objformat="elf"
2586 # currently tested for Linux x86, x86_64
2587 YASMFLAGS="-f $objformat"
2588 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2589 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2590 case "$objformat" in
2591 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2592 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2593 esac
2594 else
2595 warn_cflags=yes
2598 echo "pabsw xmm0, xmm0" > $TMPS
2599 yasm_check || _yasm=""
2600 if test $_yasm ; then
2601 def_yasm='#define HAVE_YASM 1'
2602 have_yasm="yes"
2603 echores "$_yasm"
2604 else
2605 def_yasm='#define HAVE_YASM 0'
2606 have_yasm="no"
2607 echores "no"
2610 echocheck "bswap"
2611 def_bswap='#define HAVE_BSWAP 0'
2612 echo 'bswap %eax' > $TMPS
2613 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2614 echores "$bswap"
2615 fi #if x86
2618 #FIXME: This should happen before the check for CFLAGS..
2619 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2620 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2622 # check if AltiVec is supported by the compiler, and how to enable it
2623 echocheck "GCC AltiVec flags"
2624 if $(cflag_check -maltivec -mabi=altivec) ; then
2625 _altivec_gcc_flags="-maltivec -mabi=altivec"
2626 # check if <altivec.h> should be included
2627 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2628 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2629 inc_altivec_h='#include <altivec.h>'
2630 else
2631 if $(cflag_check -faltivec) ; then
2632 _altivec_gcc_flags="-faltivec"
2633 else
2634 _altivec=no
2635 _altivec_gcc_flags="none, AltiVec disabled"
2639 echores "$_altivec_gcc_flags"
2641 # check if the compiler supports braces for vector declarations
2642 cat > $TMPC << EOF
2643 $inc_altivec_h
2644 int main(void) { (vector int) {1}; return 0; }
2646 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2648 # Disable runtime cpudetection if we cannot generate AltiVec code or
2649 # AltiVec is disabled by the user.
2650 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2651 && _runtime_cpudetection=no
2653 # Show that we are optimizing for AltiVec (if enabled and supported).
2654 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2655 && _optimizing="$_optimizing altivec"
2657 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2658 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2661 if ppc ; then
2662 def_xform_asm='#define HAVE_XFORM_ASM 0'
2663 xform_asm=no
2664 echocheck "XFORM ASM support"
2665 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2666 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2667 echores "$xform_asm"
2670 if arm ; then
2671 echocheck "ARM pld instruction"
2672 pld=no
2673 inline_asm_check '"pld [r0]"' && pld=yes
2674 echores "$pld"
2676 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2677 if test $_armv5te = "auto" ; then
2678 _armv5te=no
2679 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2681 echores "$_armv5te"
2683 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2685 echocheck "ARMv6 (SIMD instructions)"
2686 if test $_armv6 = "auto" ; then
2687 _armv6=no
2688 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2690 echores "$_armv6"
2692 echocheck "ARMv6t2 (SIMD instructions)"
2693 if test $_armv6t2 = "auto" ; then
2694 _armv6t2=no
2695 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2697 echores "$_armv6"
2699 echocheck "ARM VFP"
2700 if test $_armvfp = "auto" ; then
2701 _armvfp=no
2702 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2704 echores "$_armvfp"
2706 echocheck "ARM NEON"
2707 if test $neon = "auto" ; then
2708 neon=no
2709 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2711 echores "$neon"
2713 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2714 if test $_iwmmxt = "auto" ; then
2715 _iwmmxt=no
2716 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2718 echores "$_iwmmxt"
2721 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'
2722 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2723 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2724 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2725 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2726 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2727 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2728 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2729 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2730 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2731 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2732 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2733 test "$pld" = yes && cpuexts="PLD $cpuexts"
2734 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2735 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2736 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2737 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2738 test "$neon" = yes && cpuexts="NEON $cpuexts"
2739 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2740 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2741 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2743 # Checking kernel version...
2744 if x86_32 && linux ; then
2745 _k_verc_problem=no
2746 kernel_version=$(uname -r 2>&1)
2747 echocheck "$system_name kernel version"
2748 case "$kernel_version" in
2749 '') kernel_version="?.??"; _k_verc_fail=yes;;
2750 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2751 _k_verc_problem=yes;;
2752 esac
2753 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2754 _k_verc_fail=yes
2756 if test "$_k_verc_fail" ; then
2757 echores "$kernel_version, fail"
2758 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2759 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2760 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2761 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2762 echo "2.2.x you must upgrade it to get SSE support!"
2763 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2764 else
2765 echores "$kernel_version, ok"
2769 ######################
2770 # MAIN TESTS GO HERE #
2771 ######################
2774 echocheck "-lposix"
2775 if cflag_check -lposix ; then
2776 extra_ldflags="$extra_ldflags -lposix"
2777 echores "yes"
2778 else
2779 echores "no"
2782 echocheck "-lm"
2783 if cflag_check -lm ; then
2784 _ld_lm="-lm"
2785 echores "yes"
2786 else
2787 _ld_lm=""
2788 echores "no"
2792 echocheck "langinfo"
2793 if test "$_langinfo" = auto ; then
2794 _langinfo=no
2795 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2797 if test "$_langinfo" = yes ; then
2798 def_langinfo='#define HAVE_LANGINFO 1'
2799 else
2800 def_langinfo='#undef HAVE_LANGINFO'
2802 echores "$_langinfo"
2805 echocheck "translation support"
2806 if test "$_translation" = yes; then
2807 def_translation="#define CONFIG_TRANSLATION 1"
2808 else
2809 def_translation="#undef CONFIG_TRANSLATION"
2811 echores "$_translation"
2813 echocheck "language"
2814 # Set preferred languages, "all" uses English as main language.
2815 test -z "$language" && language=$LINGUAS
2816 test -z "$language_doc" && language_doc=$language
2817 test -z "$language_man" && language_man=$language
2818 test -z "$language_msg" && language_msg="all"
2819 language_doc=$(echo $language_doc | tr , " ")
2820 language_man=$(echo $language_man | tr , " ")
2821 language_msg=$(echo $language_msg | tr , " ")
2823 test "$language_doc" = "all" && language_doc=$doc_lang_all
2824 test "$language_man" = "all" && language_man=$man_lang_all
2825 test "$language_msg" = "all" && language_msg=$msg_lang_all
2827 if test "$_translation" != yes ; then
2828 language_msg=""
2831 # Prune non-existing translations from language lists.
2832 # Set message translation to the first available language.
2833 # Fall back on English.
2834 for lang in $language_doc ; do
2835 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2836 done
2837 language_doc=$tmp_language_doc
2838 test -z "$language_doc" && language_doc=en
2840 for lang in $language_man ; do
2841 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2842 done
2843 language_man=$tmp_language_man
2844 test -z "$language_man" && language_man=en
2846 for lang in $language_msg ; do
2847 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2848 done
2849 language_msg=$tmp_language_msg
2851 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2854 echocheck "enable sighandler"
2855 if test "$_sighandler" = yes ; then
2856 def_sighandler='#define CONFIG_SIGHANDLER 1'
2857 else
2858 def_sighandler='#undef CONFIG_SIGHANDLER'
2860 echores "$_sighandler"
2862 echocheck "runtime cpudetection"
2863 if test "$_runtime_cpudetection" = yes ; then
2864 _optimizing="Runtime CPU-Detection enabled"
2865 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2866 else
2867 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2869 echores "$_runtime_cpudetection"
2872 echocheck "restrict keyword"
2873 for restrict_keyword in restrict __restrict __restrict__ ; do
2874 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2875 if cc_check; then
2876 def_restrict_keyword=$restrict_keyword
2877 break;
2879 done
2880 if [ -n "$def_restrict_keyword" ]; then
2881 echores "$def_restrict_keyword"
2882 else
2883 echores "none"
2885 # Avoid infinite recursion loop ("#define restrict restrict")
2886 if [ "$def_restrict_keyword" != "restrict" ]; then
2887 def_restrict_keyword="#define restrict $def_restrict_keyword"
2888 else
2889 def_restrict_keyword=""
2893 echocheck "__builtin_expect"
2894 # GCC branch prediction hint
2895 cat > $TMPC << EOF
2896 static int foo(int a) {
2897 a = __builtin_expect(a, 10);
2898 return a == 10 ? 0 : 1;
2900 int main(void) { return foo(10) && foo(0); }
2902 _builtin_expect=no
2903 cc_check && _builtin_expect=yes
2904 if test "$_builtin_expect" = yes ; then
2905 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2906 else
2907 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2909 echores "$_builtin_expect"
2912 echocheck "kstat"
2913 _kstat=no
2914 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2915 if test "$_kstat" = yes ; then
2916 def_kstat="#define HAVE_LIBKSTAT 1"
2917 extra_ldflags="$extra_ldflags -lkstat"
2918 else
2919 def_kstat="#undef HAVE_LIBKSTAT"
2921 echores "$_kstat"
2924 echocheck "posix4"
2925 # required for nanosleep on some systems
2926 _posix4=no
2927 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2928 if test "$_posix4" = yes ; then
2929 extra_ldflags="$extra_ldflags -lposix4"
2931 echores "$_posix4"
2933 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2934 echocheck $func
2935 eval _$func=no
2936 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2937 if eval test "x\$_$func" = "xyes"; then
2938 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2939 echores yes
2940 else
2941 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2942 echores no
2944 done
2947 echocheck "mkstemp"
2948 cat > $TMPC << EOF
2949 #define _XOPEN_SOURCE 500
2950 #include <stdlib.h>
2951 int main(void) { mkstemp(""); return 0; }
2953 _mkstemp=no
2954 cc_check && _mkstemp=yes
2955 if test "$_mkstemp" = yes ; then
2956 def_mkstemp='#define HAVE_MKSTEMP 1'
2957 else
2958 def_mkstemp='#define HAVE_MKSTEMP 0'
2960 echores "$_mkstemp"
2963 echocheck "nanosleep"
2964 _nanosleep=no
2965 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2966 if test "$_nanosleep" = yes ; then
2967 def_nanosleep='#define HAVE_NANOSLEEP 1'
2968 else
2969 def_nanosleep='#undef HAVE_NANOSLEEP'
2971 echores "$_nanosleep"
2974 echocheck "socklib"
2975 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2976 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2977 cat > $TMPC << EOF
2978 #include <netdb.h>
2979 #include <sys/socket.h>
2980 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2982 _socklib=no
2983 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2984 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2985 done
2986 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2987 if test $_winsock2_h = auto ; then
2988 _winsock2_h=no
2989 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2991 test "$_ld_sock" && res_comment="using $_ld_sock"
2992 echores "$_socklib"
2995 if test $_winsock2_h = yes ; then
2996 _ld_sock="-lws2_32"
2997 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2998 else
2999 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3003 echocheck "arpa/inet.h"
3004 arpa_inet_h=no
3005 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3006 header_check arpa/inet.h && arpa_inet_h=yes &&
3007 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3008 echores "$arpa_inet_h"
3011 echocheck "inet_pton()"
3012 def_inet_pton='#define HAVE_INET_PTON 0'
3013 inet_pton=no
3014 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3015 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
3016 done
3017 if test $inet_pton = yes ; then
3018 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3019 def_inet_pton='#define HAVE_INET_PTON 1'
3021 echores "$inet_pton"
3024 echocheck "inet_aton()"
3025 def_inet_aton='#define HAVE_INET_ATON 0'
3026 inet_aton=no
3027 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3028 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
3029 done
3030 if test $inet_aton = yes ; then
3031 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3032 def_inet_aton='#define HAVE_INET_ATON 1'
3034 echores "$inet_aton"
3037 echocheck "socklen_t"
3038 _socklen_t=no
3039 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3040 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
3041 done
3042 if test "$_socklen_t" = yes ; then
3043 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3044 else
3045 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3047 echores "$_socklen_t"
3050 echocheck "closesocket()"
3051 _closesocket=no
3052 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
3053 if test "$_closesocket" = yes ; then
3054 def_closesocket='#define HAVE_CLOSESOCKET 1'
3055 else
3056 def_closesocket='#define HAVE_CLOSESOCKET 0'
3058 echores "$_closesocket"
3061 echocheck "networking"
3062 test $_winsock2_h = no && test $inet_pton = no &&
3063 test $inet_aton = no && networking=no
3064 if test "$networking" = yes ; then
3065 def_network='#define CONFIG_NETWORK 1'
3066 def_networking='#define CONFIG_NETWORKING 1'
3067 extra_ldflags="$extra_ldflags $_ld_sock"
3068 inputmodules="networking $inputmodules"
3069 else
3070 noinputmodules="networking $noinputmodules"
3071 def_network='#undef CONFIG_NETWORK'
3072 def_networking='#undef CONFIG_NETWORKING'
3074 echores "$networking"
3077 echocheck "inet6"
3078 if test "$_inet6" = auto ; then
3079 cat > $TMPC << EOF
3080 #include <sys/types.h>
3081 #if !defined(_WIN32) || defined(__CYGWIN__)
3082 #include <sys/socket.h>
3083 #include <netinet/in.h>
3084 #else
3085 #include <ws2tcpip.h>
3086 #endif
3087 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3089 _inet6=no
3090 if cc_check $_ld_sock ; then
3091 _inet6=yes
3094 if test "$_inet6" = yes ; then
3095 def_inet6='#define HAVE_AF_INET6 1'
3096 else
3097 def_inet6='#undef HAVE_AF_INET6'
3099 echores "$_inet6"
3102 echocheck "gethostbyname2"
3103 if test "$_gethostbyname2" = auto ; then
3104 cat > $TMPC << EOF
3105 #include <sys/types.h>
3106 #include <sys/socket.h>
3107 #include <netdb.h>
3108 int main(void) { gethostbyname2("", AF_INET); return 0; }
3110 _gethostbyname2=no
3111 if cc_check ; then
3112 _gethostbyname2=yes
3115 if test "$_gethostbyname2" = yes ; then
3116 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3117 else
3118 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3120 echores "$_gethostbyname2"
3123 echocheck "inttypes.h (required)"
3124 _inttypes=no
3125 header_check inttypes.h && _inttypes=yes
3126 echores "$_inttypes"
3128 if test "$_inttypes" = no ; then
3129 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3130 header_check sys/bitypes.h && _inttypes=yes
3131 if test "$_inttypes" = yes ; then
3132 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."
3133 else
3134 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3139 echocheck "int_fastXY_t in inttypes.h"
3140 cat > $TMPC << EOF
3141 #include <inttypes.h>
3142 int main(void) { volatile int_fast16_t v = 0; return v; }
3144 _fast_inttypes=no
3145 cc_check && _fast_inttypes=yes
3146 if test "$_fast_inttypes" = no ; then
3147 def_fast_inttypes='
3148 typedef signed char int_fast8_t;
3149 typedef signed int int_fast16_t;
3150 typedef signed int int_fast32_t;
3151 typedef signed long long int_fast64_t;
3152 typedef unsigned char uint_fast8_t;
3153 typedef unsigned int uint_fast16_t;
3154 typedef unsigned int uint_fast32_t;
3155 typedef unsigned long long uint_fast64_t;'
3157 echores "$_fast_inttypes"
3160 echocheck "malloc.h"
3161 _malloc=no
3162 header_check malloc.h && _malloc=yes
3163 if test "$_malloc" = yes ; then
3164 def_malloc_h='#define HAVE_MALLOC_H 1'
3165 else
3166 def_malloc_h='#define HAVE_MALLOC_H 0'
3168 echores "$_malloc"
3171 echocheck "memalign()"
3172 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3173 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3174 _memalign=no
3175 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3176 if test "$_memalign" = yes ; then
3177 def_memalign='#define HAVE_MEMALIGN 1'
3178 else
3179 def_memalign='#define HAVE_MEMALIGN 0'
3180 def_map_memalign='#define memalign(a, b) malloc(b)'
3181 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3183 echores "$_memalign"
3186 echocheck "posix_memalign()"
3187 posix_memalign=no
3188 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3189 cat > $TMPC << EOF
3190 #define _XOPEN_SOURCE 600
3191 #include <stdlib.h>
3192 int main(void) { posix_memalign(NULL, 0, 0); }
3194 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3195 echores "$posix_memalign"
3198 echocheck "alloca.h"
3199 _alloca=no
3200 statement_check alloca.h 'alloca(0)' && _alloca=yes
3201 if cc_check ; then
3202 def_alloca_h='#define HAVE_ALLOCA_H 1'
3203 else
3204 def_alloca_h='#undef HAVE_ALLOCA_H'
3206 echores "$_alloca"
3209 echocheck "fastmemcpy"
3210 if test "$_fastmemcpy" = yes ; then
3211 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3212 else
3213 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3215 echores "$_fastmemcpy"
3218 echocheck "mman.h"
3219 _mman=no
3220 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3221 if test "$_mman" = yes ; then
3222 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3223 else
3224 def_mman_h='#undef HAVE_SYS_MMAN_H'
3225 os2 && _need_mmap=yes
3227 echores "$_mman"
3229 _mman_has_map_failed=no
3230 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3231 if test "$_mman_has_map_failed" = yes ; then
3232 def_mman_has_map_failed=''
3233 else
3234 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3237 echocheck "dynamic loader"
3238 _dl=no
3239 for _ld_tmp in "" "-ldl"; do
3240 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3241 done
3242 if test "$_dl" = yes ; then
3243 def_dl='#define HAVE_LIBDL 1'
3244 else
3245 def_dl='#undef HAVE_LIBDL'
3247 echores "$_dl"
3250 echocheck "dynamic a/v plugins support"
3251 if test "$_dl" = no ; then
3252 _dynamic_plugins=no
3254 if test "$_dynamic_plugins" = yes ; then
3255 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3256 else
3257 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3259 echores "$_dynamic_plugins"
3262 def_threads='#define HAVE_THREADS 0'
3264 echocheck "pthread"
3265 if linux ; then
3266 THREAD_CFLAGS=-D_REENTRANT
3267 elif freebsd || netbsd || openbsd || bsdos ; then
3268 THREAD_CFLAGS=-D_THREAD_SAFE
3270 if test "$_pthreads" = auto ; then
3271 cat > $TMPC << EOF
3272 #include <pthread.h>
3273 static void *func(void *arg) { return arg; }
3274 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3276 _pthreads=no
3277 if ! hpux ; then
3278 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3279 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3280 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3281 done
3284 if test "$_pthreads" = yes ; then
3285 test $_ld_pthread && res_comment="using $_ld_pthread"
3286 def_pthreads='#define HAVE_PTHREADS 1'
3287 def_threads='#define HAVE_THREADS 1'
3288 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3289 else
3290 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3291 def_pthreads='#undef HAVE_PTHREADS'
3292 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3293 mingw32 || _win32dll=no
3295 echores "$_pthreads"
3297 if cygwin ; then
3298 if test "$_pthreads" = yes ; then
3299 def_pthread_cache="#define PTHREAD_CACHE 1"
3300 else
3301 _stream_cache=no
3302 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3306 echocheck "w32threads"
3307 if test "$_pthreads" = yes ; then
3308 res_comment="using pthread instead"
3309 _w32threads=no
3311 if test "$_w32threads" = auto ; then
3312 _w32threads=no
3313 mingw32 && _w32threads=yes
3315 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3316 echores "$_w32threads"
3318 echocheck "rpath"
3319 netbsd &&_rpath=yes
3320 if test "$_rpath" = yes ; then
3321 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3322 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3323 done
3324 extra_ldflags=$tmp
3326 echores "$_rpath"
3328 echocheck "iconv"
3329 if test "$_iconv" = auto ; then
3330 cat > $TMPC << EOF
3331 #include <stdio.h>
3332 #include <unistd.h>
3333 #include <iconv.h>
3334 #define INBUFSIZE 1024
3335 #define OUTBUFSIZE 4096
3337 char inbuffer[INBUFSIZE];
3338 char outbuffer[OUTBUFSIZE];
3340 int main(void) {
3341 size_t numread;
3342 iconv_t icdsc;
3343 char *tocode="UTF-8";
3344 char *fromcode="cp1250";
3345 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3346 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3347 char *iptr=inbuffer;
3348 char *optr=outbuffer;
3349 size_t inleft=numread;
3350 size_t outleft=OUTBUFSIZE;
3351 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3352 != (size_t)(-1)) {
3353 write(1, outbuffer, OUTBUFSIZE - outleft);
3356 if (iconv_close(icdsc) == -1)
3359 return 0;
3362 _iconv=no
3363 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3364 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3365 _iconv=yes && break
3366 done
3368 if test "$_iconv" = yes ; then
3369 def_iconv='#define CONFIG_ICONV 1'
3370 else
3371 def_iconv='#undef CONFIG_ICONV'
3373 echores "$_iconv"
3376 echocheck "soundcard.h"
3377 _soundcard_h=no
3378 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3379 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3380 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3381 header_check $_soundcard_header && _soundcard_h=yes &&
3382 res_comment="$_soundcard_header" && break
3383 done
3385 if test "$_soundcard_h" = yes ; then
3386 if test $_soundcard_header = "sys/soundcard.h"; then
3387 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3388 else
3389 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3392 echores "$_soundcard_h"
3395 echocheck "sys/dvdio.h"
3396 _dvdio=no
3397 # FreeBSD 8.1 has broken dvdio.h
3398 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3399 if test "$_dvdio" = yes ; then
3400 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3401 else
3402 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3404 echores "$_dvdio"
3407 echocheck "sys/cdio.h"
3408 _cdio=no
3409 # at least OpenSolaris has a broken cdio.h
3410 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3411 if test "$_cdio" = yes ; then
3412 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3413 else
3414 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3416 echores "$_cdio"
3419 echocheck "linux/cdrom.h"
3420 _cdrom=no
3421 header_check linux/cdrom.h && _cdrom=yes
3422 if test "$_cdrom" = yes ; then
3423 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3424 else
3425 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3427 echores "$_cdrom"
3430 echocheck "dvd.h"
3431 _dvd=no
3432 header_check dvd.h && _dvd=yes
3433 if test "$_dvd" = yes ; then
3434 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3435 else
3436 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3438 echores "$_dvd"
3441 if bsdos; then
3442 echocheck "BSDI dvd.h"
3443 _bsdi_dvd=no
3444 header_check dvd.h && _bsdi_dvd=yes
3445 if test "$_bsdi_dvd" = yes ; then
3446 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3447 else
3448 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3450 echores "$_bsdi_dvd"
3451 fi #if bsdos
3454 if hpux; then
3455 # also used by AIX, but AIX does not support VCD and/or libdvdread
3456 echocheck "HP-UX SCSI header"
3457 _hpux_scsi_h=no
3458 header_check sys/scsi.h && _hpux_scsi_h=yes
3459 if test "$_hpux_scsi_h" = yes ; then
3460 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3461 else
3462 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3464 echores "$_hpux_scsi_h"
3465 fi #if hpux
3468 if sunos; then
3469 echocheck "userspace SCSI headers (Solaris)"
3470 _sol_scsi_h=no
3471 header_check sys/scsi/scsi_types.h &&
3472 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3473 _sol_scsi_h=yes
3474 if test "$_sol_scsi_h" = yes ; then
3475 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3476 else
3477 def_sol_scsi_h='#undef SOLARIS_USCSI'
3479 echores "$_sol_scsi_h"
3480 fi #if sunos
3483 echocheck "termcap"
3484 if test "$_termcap" = auto ; then
3485 _termcap=no
3486 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3487 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3488 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3489 done
3491 if test "$_termcap" = yes ; then
3492 def_termcap='#define HAVE_TERMCAP 1'
3493 test $_ld_tmp && res_comment="using $_ld_tmp"
3494 else
3495 def_termcap='#undef HAVE_TERMCAP'
3497 echores "$_termcap"
3500 echocheck "termios"
3501 def_termios='#undef HAVE_TERMIOS'
3502 def_termios_h='#undef HAVE_TERMIOS_H'
3503 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3504 if test "$_termios" = auto ; then
3505 _termios=no
3506 for _termios_header in "termios.h" "sys/termios.h"; do
3507 header_check $_termios_header && _termios=yes &&
3508 res_comment="using $_termios_header" && break
3509 done
3512 if test "$_termios" = yes ; then
3513 def_termios='#define HAVE_TERMIOS 1'
3514 if test "$_termios_header" = "termios.h" ; then
3515 def_termios_h='#define HAVE_TERMIOS_H 1'
3516 else
3517 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3520 echores "$_termios"
3523 echocheck "shm"
3524 if test "$_shm" = auto ; then
3525 cat > $TMPC << EOF
3526 #include <sys/shm.h>
3527 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3529 _shm=no
3530 cc_check && _shm=yes
3532 if test "$_shm" = yes ; then
3533 def_shm='#define HAVE_SHM 1'
3534 else
3535 def_shm='#undef HAVE_SHM'
3537 echores "$_shm"
3540 echocheck "strsep()"
3541 cat > $TMPC << EOF
3542 #include <string.h>
3543 int main(void) { char *s = "Hello, world!"; strsep(&s, ","); return 0; }
3545 _strsep=no
3546 cc_check && _strsep=yes
3547 if test "$_strsep" = yes ; then
3548 def_strsep='#define HAVE_STRSEP 1'
3549 _need_strsep=no
3550 else
3551 def_strsep='#undef HAVE_STRSEP'
3552 _need_strsep=yes
3554 echores "$_strsep"
3557 echocheck "vsscanf()"
3558 cat > $TMPC << EOF
3559 #define _ISOC99_SOURCE
3560 #include <stdarg.h>
3561 #include <stdio.h>
3562 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3564 _vsscanf=no
3565 cc_check && _vsscanf=yes
3566 if test "$_vsscanf" = yes ; then
3567 def_vsscanf='#define HAVE_VSSCANF 1'
3568 _need_vsscanf=no
3569 else
3570 def_vsscanf='#undef HAVE_VSSCANF'
3571 _need_vsscanf=yes
3573 echores "$_vsscanf"
3576 echocheck "swab()"
3577 cat > $TMPC << EOF
3578 #define _XOPEN_SOURCE 600
3579 #include <unistd.h>
3580 int main(void) { int a, b; swab(&a, &b, 0); return 0; }
3582 _swab=no
3583 cc_check && _swab=yes
3584 if test "$_swab" = yes ; then
3585 def_swab='#define HAVE_SWAB 1'
3586 _need_swab=no
3587 else
3588 def_swab='#undef HAVE_SWAB'
3589 _need_swab=yes
3591 echores "$_swab"
3593 echocheck "POSIX select()"
3594 cat > $TMPC << EOF
3595 #include <stdio.h>
3596 #include <stdlib.h>
3597 #include <sys/types.h>
3598 #include <string.h>
3599 #include <sys/time.h>
3600 #include <unistd.h>
3601 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3603 _posix_select=no
3604 def_posix_select='#undef HAVE_POSIX_SELECT'
3605 #select() of kLIBC (OS/2) supports socket only
3606 ! os2 && cc_check && _posix_select=yes \
3607 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3608 echores "$_posix_select"
3611 echocheck "audio select()"
3612 if test "$_select" = no ; then
3613 def_select='#undef HAVE_AUDIO_SELECT'
3614 elif test "$_select" = yes ; then
3615 def_select='#define HAVE_AUDIO_SELECT 1'
3617 echores "$_select"
3620 echocheck "gettimeofday()"
3621 cat > $TMPC << EOF
3622 #include <sys/time.h>
3623 int main(void) {struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz); return 0; }
3625 _gettimeofday=no
3626 cc_check && _gettimeofday=yes
3627 if test "$_gettimeofday" = yes ; then
3628 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3629 _need_gettimeofday=no
3630 else
3631 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3632 _need_gettimeofday=yes
3634 echores "$_gettimeofday"
3637 echocheck "glob()"
3638 _glob=no
3639 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3640 if test "$_glob" = yes ; then
3641 def_glob='#define HAVE_GLOB 1'
3642 _need_glob=no
3643 else
3644 def_glob='#undef HAVE_GLOB'
3645 _need_glob=yes
3647 echores "$_glob"
3650 echocheck "setenv()"
3651 _setenv=no
3652 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3653 if test "$_setenv" = yes ; then
3654 def_setenv='#define HAVE_SETENV 1'
3655 _need_setenv=no
3656 else
3657 def_setenv='#undef HAVE_SETENV'
3658 _need_setenv=yes
3660 echores "$_setenv"
3663 echocheck "setmode()"
3664 _setmode=no
3665 def_setmode='#define HAVE_SETMODE 0'
3666 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3667 echores "$_setmode"
3670 if sunos; then
3671 echocheck "sysi86()"
3672 _sysi86=no
3673 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3674 if test "$_sysi86" = yes ; then
3675 def_sysi86='#define HAVE_SYSI86 1'
3676 cat > $TMPC << EOF
3677 #include <sys/sysi86.h>
3678 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3680 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3681 else
3682 def_sysi86='#undef HAVE_SYSI86'
3684 echores "$_sysi86"
3685 fi #if sunos
3688 echocheck "sys/sysinfo.h"
3689 cat > $TMPC << EOF
3690 #include <sys/sysinfo.h>
3691 int main(void) { struct sysinfo s_info; sysinfo(&s_info); return 0; }
3693 _sys_sysinfo=no
3694 cc_check && _sys_sysinfo=yes
3695 if test "$_sys_sysinfo" = yes ; then
3696 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3697 else
3698 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3700 echores "$_sys_sysinfo"
3703 if darwin; then
3705 echocheck "Mac OS X Finder Support"
3706 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3707 if test "$_macosx_finder" = yes ; then
3708 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3709 extra_ldflags="$extra_ldflags -framework Carbon"
3711 echores "$_macosx_finder"
3713 echocheck "Mac OS X Bundle file locations"
3714 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3715 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3716 if test "$_macosx_bundle" = yes ; then
3717 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3718 extra_ldflags="$extra_ldflags -framework Carbon"
3720 echores "$_macosx_bundle"
3722 echocheck "Apple Remote"
3723 if test "$_apple_remote" = auto ; then
3724 _apple_remote=no
3725 cat > $TMPC <<EOF
3726 #include <stdio.h>
3727 #include <IOKit/IOCFPlugIn.h>
3728 int main(void) {
3729 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3730 CFMutableDictionaryRef hidMatchDictionary;
3731 IOReturn ioReturnValue;
3733 // Set up a matching dictionary to search the I/O Registry by class.
3734 // name for all HID class devices
3735 hidMatchDictionary = IOServiceMatching("AppleIRController");
3737 // Now search I/O Registry for matching devices.
3738 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3739 hidMatchDictionary, &hidObjectIterator);
3741 // If search is unsuccessful, return nonzero.
3742 if (ioReturnValue != kIOReturnSuccess ||
3743 !IOIteratorIsValid(hidObjectIterator)) {
3744 return 1;
3746 return 0;
3749 cc_check -framework IOKit && _apple_remote=yes
3751 if test "$_apple_remote" = yes ; then
3752 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3753 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3754 else
3755 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3757 echores "$_apple_remote"
3759 fi #if darwin
3761 if linux; then
3763 echocheck "Apple IR"
3764 if test "$_apple_ir" = auto ; then
3765 _apple_ir=no
3766 cat > $TMPC <<EOF
3767 #include <linux/input.h>
3768 int main(void) { struct input_event ev; struct input_id id; return 0; }
3770 cc_check && _apple_ir=yes
3772 if test "$_apple_ir" = yes ; then
3773 def_apple_ir='#define CONFIG_APPLE_IR 1'
3774 else
3775 def_apple_ir='#undef CONFIG_APPLE_IR'
3777 echores "$_apple_ir"
3778 fi #if linux
3780 echocheck "pkg-config"
3781 _pkg_config=pkg-config
3782 if $($_pkg_config --version > /dev/null 2>&1); then
3783 if test "$_ld_static"; then
3784 _pkg_config="$_pkg_config --static"
3786 echores "yes"
3787 else
3788 _pkg_config=false
3789 echores "no"
3793 echocheck "Samba support (libsmbclient)"
3794 if test "$_smb" = yes; then
3795 extra_ldflags="$extra_ldflags -lsmbclient"
3797 if test "$_smb" = auto; then
3798 _smb=no
3799 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3800 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3801 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3802 done
3805 if test "$_smb" = yes; then
3806 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3807 inputmodules="smb $inputmodules"
3808 else
3809 def_smb="#undef CONFIG_LIBSMBCLIENT"
3810 noinputmodules="smb $noinputmodules"
3812 echores "$_smb"
3815 #########
3816 # VIDEO #
3817 #########
3820 echocheck "tdfxfb"
3821 if test "$_tdfxfb" = yes ; then
3822 def_tdfxfb='#define CONFIG_TDFXFB 1'
3823 vomodules="tdfxfb $vomodules"
3824 else
3825 def_tdfxfb='#undef CONFIG_TDFXFB'
3826 novomodules="tdfxfb $novomodules"
3828 echores "$_tdfxfb"
3830 echocheck "s3fb"
3831 if test "$_s3fb" = yes ; then
3832 def_s3fb='#define CONFIG_S3FB 1'
3833 vomodules="s3fb $vomodules"
3834 else
3835 def_s3fb='#undef CONFIG_S3FB'
3836 novomodules="s3fb $novomodules"
3838 echores "$_s3fb"
3840 echocheck "wii"
3841 if test "$_wii" = yes ; then
3842 def_wii='#define CONFIG_WII 1'
3843 vomodules="wii $vomodules"
3844 else
3845 def_wii='#undef CONFIG_WII'
3846 novomodules="wii $novomodules"
3848 echores "$_wii"
3850 echocheck "tdfxvid"
3851 if test "$_tdfxvid" = yes ; then
3852 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3853 vomodules="tdfx_vid $vomodules"
3854 else
3855 def_tdfxvid='#undef CONFIG_TDFX_VID'
3856 novomodules="tdfx_vid $novomodules"
3858 echores "$_tdfxvid"
3860 echocheck "xvr100"
3861 if test "$_xvr100" = auto ; then
3862 cat > $TMPC << EOF
3863 #include <unistd.h>
3864 #include <sys/fbio.h>
3865 #include <sys/visual_io.h>
3866 int main(void) {
3867 struct vis_identifier ident;
3868 struct fbgattr attr;
3869 ioctl(0, VIS_GETIDENTIFIER, &ident);
3870 ioctl(0, FBIOGATTR, &attr);
3871 return 0;
3874 _xvr100=no
3875 cc_check && _xvr100=yes
3877 if test "$_xvr100" = yes ; then
3878 def_xvr100='#define CONFIG_XVR100 1'
3879 vomodules="xvr100 $vomodules"
3880 else
3881 def_tdfxvid='#undef CONFIG_XVR100'
3882 novomodules="xvr100 $novomodules"
3884 echores "$_xvr100"
3886 echocheck "tga"
3887 if test "$_tga" = yes ; then
3888 def_tga='#define CONFIG_TGA 1'
3889 vomodules="tga $vomodules"
3890 else
3891 def_tga='#undef CONFIG_TGA'
3892 novomodules="tga $novomodules"
3894 echores "$_tga"
3897 echocheck "md5sum support"
3898 if test "$_md5sum" = yes; then
3899 def_md5sum="#define CONFIG_MD5SUM 1"
3900 vomodules="md5sum $vomodules"
3901 else
3902 def_md5sum="#undef CONFIG_MD5SUM"
3903 novomodules="md5sum $novomodules"
3905 echores "$_md5sum"
3908 echocheck "yuv4mpeg support"
3909 if test "$_yuv4mpeg" = yes; then
3910 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3911 vomodules="yuv4mpeg $vomodules"
3912 else
3913 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3914 novomodules="yuv4mpeg $novomodules"
3916 echores "$_yuv4mpeg"
3919 echocheck "bl"
3920 if test "$_bl" = yes ; then
3921 def_bl='#define CONFIG_BL 1'
3922 vomodules="bl $vomodules"
3923 else
3924 def_bl='#undef CONFIG_BL'
3925 novomodules="bl $novomodules"
3927 echores "$_bl"
3930 echocheck "DirectFB"
3931 if test "$_directfb" = auto ; then
3932 _directfb=no
3933 cat > $TMPC << EOF
3934 #include <directfb.h>
3935 #include <directfb_version.h>
3936 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3937 #error "DirectFB version too old."
3938 #endif
3939 int main(void) { DirectFBInit(0, 0); return 0; }
3941 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3942 cc_check $_inc_tmp -ldirectfb &&
3943 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3944 done
3946 if test "$_directfb" = yes ; then
3947 def_directfb='#define CONFIG_DIRECTFB 1'
3948 vomodules="directfb dfbmga $vomodules"
3949 libs_mplayer="$libs_mplayer -ldirectfb"
3950 else
3951 def_directfb='#undef CONFIG_DIRECTFB'
3952 novomodules="directfb dfbmga $novomodules"
3954 echores "$_directfb"
3957 echocheck "X11 headers presence"
3958 _x11_headers="no"
3959 res_comment="check if the dev(el) packages are installed"
3960 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3961 if test -f "$I/X11/Xlib.h" ; then
3962 _x11_headers="yes"
3963 res_comment=""
3964 break
3966 done
3967 if test $_cross_compile = no; then
3968 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3969 /usr/include/X11R6 /usr/openwin/include ; do
3970 if test -f "$I/X11/Xlib.h" ; then
3971 extra_cflags="$extra_cflags -I$I"
3972 _x11_headers="yes"
3973 res_comment="using $I"
3974 break
3976 done
3978 echores "$_x11_headers"
3981 echocheck "X11"
3982 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3983 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3984 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3985 -L/usr/lib ; do
3986 if netbsd; then
3987 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3988 else
3989 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3991 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3992 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3993 done
3995 if test "$_x11" = yes ; then
3996 def_x11='#define CONFIG_X11 1'
3997 vomodules="x11 xover $vomodules"
3998 else
3999 _x11=no
4000 def_x11='#undef CONFIG_X11'
4001 novomodules="x11 $novomodules"
4002 res_comment="check if the dev(el) packages are installed"
4003 # disable stuff that depends on X
4004 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4006 echores "$_x11"
4008 echocheck "Xss screensaver extensions"
4009 if test "$_xss" = auto ; then
4010 cat > $TMPC << EOF
4011 #include <X11/Xlib.h>
4012 #include <X11/extensions/scrnsaver.h>
4013 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4015 _xss=no
4016 cc_check -lXss && _xss=yes
4018 if test "$_xss" = yes ; then
4019 def_xss='#define CONFIG_XSS 1'
4020 libs_mplayer="$libs_mplayer -lXss"
4021 else
4022 def_xss='#undef CONFIG_XSS'
4024 echores "$_xss"
4026 echocheck "DPMS"
4027 _xdpms3=no
4028 _xdpms4=no
4029 if test "$_x11" = yes ; then
4030 cat > $TMPC <<EOF
4031 #include <X11/Xmd.h>
4032 #include <X11/Xlib.h>
4033 #include <X11/Xutil.h>
4034 #include <X11/Xatom.h>
4035 #include <X11/extensions/dpms.h>
4036 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
4038 cc_check -lXdpms && _xdpms3=yes
4039 cat > $TMPC <<EOF
4040 #include <X11/Xlib.h>
4041 #include <X11/extensions/dpms.h>
4042 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
4044 cc_check -lXext && _xdpms4=yes
4046 if test "$_xdpms4" = yes ; then
4047 def_xdpms='#define CONFIG_XDPMS 1'
4048 res_comment="using Xdpms 4"
4049 echores "yes"
4050 elif test "$_xdpms3" = yes ; then
4051 def_xdpms='#define CONFIG_XDPMS 1'
4052 libs_mplayer="$libs_mplayer -lXdpms"
4053 res_comment="using Xdpms 3"
4054 echores "yes"
4055 else
4056 def_xdpms='#undef CONFIG_XDPMS'
4057 echores "no"
4061 echocheck "Xv"
4062 if test "$_xv" = auto ; then
4063 cat > $TMPC <<EOF
4064 #include <X11/Xlib.h>
4065 #include <X11/extensions/Xvlib.h>
4066 int main(void) {
4067 XvGetPortAttribute(0, 0, 0, 0);
4068 XvQueryPortAttributes(0, 0, 0);
4069 return 0; }
4071 _xv=no
4072 cc_check -lXv && _xv=yes
4075 if test "$_xv" = yes ; then
4076 def_xv='#define CONFIG_XV 1'
4077 libs_mplayer="$libs_mplayer -lXv"
4078 vomodules="xv $vomodules"
4079 else
4080 def_xv='#undef CONFIG_XV'
4081 novomodules="xv $novomodules"
4083 echores "$_xv"
4086 echocheck "XvMC"
4087 if test "$_xv" = yes && test "$_xvmc" != no ; then
4088 _xvmc=no
4089 cat > $TMPC <<EOF
4090 #include <X11/Xlib.h>
4091 #include <X11/extensions/Xvlib.h>
4092 #include <X11/extensions/XvMClib.h>
4093 int main(void) {
4094 XvMCQueryExtension(0, 0, 0);
4095 XvMCCreateContext(0, 0, 0, 0, 0, 0, 0);
4096 return 0; }
4098 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4099 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4100 done
4102 if test "$_xvmc" = yes ; then
4103 def_xvmc='#define CONFIG_XVMC 1'
4104 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4105 vomodules="xvmc $vomodules"
4106 res_comment="using $_xvmclib"
4107 else
4108 def_xvmc='#define CONFIG_XVMC 0'
4109 novomodules="xvmc $novomodules"
4111 echores "$_xvmc"
4114 echocheck "VDPAU"
4115 if test "$_vdpau" = auto ; then
4116 _vdpau=no
4117 if test "$_dl" = yes ; then
4118 cat > $TMPC <<EOF
4119 #include <vdpau/vdpau_x11.h>
4120 int main(void) {
4121 vdp_device_create_x11(0, 0, 0, 0);
4122 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4124 cc_check -lvdpau && _vdpau=yes
4127 if test "$_vdpau" = yes ; then
4128 def_vdpau='#define CONFIG_VDPAU 1'
4129 libs_mplayer="$libs_mplayer -lvdpau"
4130 vomodules="vdpau $vomodules"
4131 else
4132 def_vdpau='#define CONFIG_VDPAU 0'
4133 novomodules="vdpau $novomodules"
4135 echores "$_vdpau"
4138 echocheck "Xinerama"
4139 if test "$_xinerama" = auto ; then
4140 _xinerama=no
4141 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
4144 if test "$_xinerama" = yes ; then
4145 def_xinerama='#define CONFIG_XINERAMA 1'
4146 libs_mplayer="$libs_mplayer -lXinerama"
4147 else
4148 def_xinerama='#undef CONFIG_XINERAMA'
4150 echores "$_xinerama"
4153 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4154 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4155 # named 'X extensions' or something similar.
4156 # This check may be useful for future mplayer versions (to change resolution)
4157 # If you run into problems, remove '-lXxf86vm'.
4158 echocheck "Xxf86vm"
4159 if test "$_vm" = auto ; then
4160 cat > $TMPC <<EOF
4161 #include <X11/Xlib.h>
4162 #include <X11/extensions/xf86vmode.h>
4163 int main(void) { XF86VidModeQueryExtension(0, 0, 0); return 0; }
4165 _vm=no
4166 cc_check -lXxf86vm && _vm=yes
4168 if test "$_vm" = yes ; then
4169 def_vm='#define CONFIG_XF86VM 1'
4170 libs_mplayer="$libs_mplayer -lXxf86vm"
4171 else
4172 def_vm='#undef CONFIG_XF86VM'
4174 echores "$_vm"
4176 # Check for the presence of special keycodes, like audio control buttons
4177 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4178 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4179 # have these new keycodes.
4180 echocheck "XF86keysym"
4181 if test "$_xf86keysym" = auto; then
4182 _xf86keysym=no
4183 cat > $TMPC <<EOF
4184 #include <X11/XF86keysym.h>
4185 int main(void) { return XF86XK_AudioPause; }
4187 cc_check && _xf86keysym=yes
4189 if test "$_xf86keysym" = yes ; then
4190 def_xf86keysym='#define CONFIG_XF86XK 1'
4191 else
4192 def_xf86keysym='#undef CONFIG_XF86XK'
4194 echores "$_xf86keysym"
4196 echocheck "DGA"
4197 if test "$_dga2" = auto && test "$_x11" = yes ; then
4198 cat > $TMPC << EOF
4199 #include <X11/Xlib.h>
4200 #include <X11/extensions/xf86dga.h>
4201 int main(void) { XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4203 _dga2=no
4204 cc_check -lXxf86dga && _dga2=yes
4206 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4207 cat > $TMPC << EOF
4208 #include <X11/Xlib.h>
4209 #include <X11/extensions/xf86dga.h>
4210 int main(void) { XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4212 _dga1=no
4213 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4216 _dga=no
4217 def_dga='#undef CONFIG_DGA'
4218 def_dga1='#undef CONFIG_DGA1'
4219 def_dga2='#undef CONFIG_DGA2'
4220 if test "$_dga1" = yes ; then
4221 _dga=yes
4222 def_dga1='#define CONFIG_DGA1 1'
4223 res_comment="using DGA 1.0"
4224 elif test "$_dga2" = yes ; then
4225 _dga=yes
4226 def_dga2='#define CONFIG_DGA2 1'
4227 res_comment="using DGA 2.0"
4229 if test "$_dga" = yes ; then
4230 def_dga='#define CONFIG_DGA 1'
4231 libs_mplayer="$libs_mplayer -lXxf86dga"
4232 vomodules="dga $vomodules"
4233 else
4234 novomodules="dga $novomodules"
4236 echores "$_dga"
4239 echocheck "3dfx"
4240 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4241 def_3dfx='#define CONFIG_3DFX 1'
4242 vomodules="3dfx $vomodules"
4243 else
4244 def_3dfx='#undef CONFIG_3DFX'
4245 novomodules="3dfx $novomodules"
4247 echores "$_3dfx"
4250 echocheck "VIDIX"
4251 def_vidix='#undef CONFIG_VIDIX'
4252 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4253 _vidix_drv_cyberblade=no
4254 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4255 _vidix_drv_ivtv=no
4256 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4257 _vidix_drv_mach64=no
4258 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4259 _vidix_drv_mga=no
4260 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4261 _vidix_drv_mga_crtc2=no
4262 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4263 _vidix_drv_nvidia=no
4264 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4265 _vidix_drv_pm2=no
4266 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4267 _vidix_drv_pm3=no
4268 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4269 _vidix_drv_radeon=no
4270 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4271 _vidix_drv_rage128=no
4272 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4273 _vidix_drv_s3=no
4274 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4275 _vidix_drv_sh_veu=no
4276 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4277 _vidix_drv_sis=no
4278 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4279 _vidix_drv_unichrome=no
4280 if test "$_vidix" = auto ; then
4281 _vidix=no
4282 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4283 && _vidix=yes
4284 x86_64 && ! linux && _vidix=no
4285 (ppc || alpha) && linux && _vidix=yes
4287 echores "$_vidix"
4289 if test "$_vidix" = yes ; then
4290 def_vidix='#define CONFIG_VIDIX 1'
4291 vomodules="cvidix $vomodules"
4292 # FIXME: ivtv driver temporarily disabled until we have a proper test
4293 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4294 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4296 # some vidix drivers are architecture and os specific, discard them elsewhere
4297 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4298 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4300 for driver in $_vidix_drivers ; do
4301 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4302 eval _vidix_drv_${driver}=yes
4303 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4304 done
4306 echocheck "VIDIX PCI device name database"
4307 echores "$_vidix_pcidb"
4308 if test "$_vidix_pcidb" = yes ; then
4309 _vidix_pcidb_val=1
4310 else
4311 _vidix_pcidb_val=0
4314 echocheck "VIDIX dhahelper support"
4315 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4316 echores "$_dhahelper"
4318 echocheck "VIDIX svgalib_helper support"
4319 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4320 echores "$_svgalib_helper"
4322 else
4323 novomodules="cvidix $novomodules"
4326 if test "$_vidix" = yes && win32; then
4327 winvidix=yes
4328 vomodules="winvidix $vomodules"
4329 libs_mplayer="$libs_mplayer -lgdi32"
4330 else
4331 novomodules="winvidix $novomodules"
4333 if test "$_vidix" = yes && test "$_x11" = yes; then
4334 xvidix=yes
4335 vomodules="xvidix $vomodules"
4336 else
4337 novomodules="xvidix $novomodules"
4340 echocheck "GGI"
4341 if test "$_ggi" = auto ; then
4342 _ggi=no
4343 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4345 if test "$_ggi" = yes ; then
4346 def_ggi='#define CONFIG_GGI 1'
4347 libs_mplayer="$libs_mplayer -lggi"
4348 vomodules="ggi $vomodules"
4349 else
4350 def_ggi='#undef CONFIG_GGI'
4351 novomodules="ggi $novomodules"
4353 echores "$_ggi"
4355 echocheck "GGI extension: libggiwmh"
4356 if test "$_ggiwmh" = auto ; then
4357 _ggiwmh=no
4358 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4360 # needed to get right output on obscure combination
4361 # like --disable-ggi --enable-ggiwmh
4362 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4363 def_ggiwmh='#define CONFIG_GGIWMH 1'
4364 libs_mplayer="$libs_mplayer -lggiwmh"
4365 else
4366 _ggiwmh=no
4367 def_ggiwmh='#undef CONFIG_GGIWMH'
4369 echores "$_ggiwmh"
4372 echocheck "AA"
4373 if test "$_aa" = auto ; then
4374 cat > $TMPC << EOF
4375 #include <aalib.h>
4376 int main(void) {
4377 aa_context *c;
4378 aa_renderparams *p;
4379 aa_init(0, 0, 0);
4380 c = aa_autoinit(&aa_defparams);
4381 p = aa_getrenderparams();
4382 aa_autoinitkbd(c, 0);
4383 return 0; }
4385 _aa=no
4386 for _ld_tmp in "-laa" ; do
4387 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4388 done
4390 if test "$_aa" = yes ; then
4391 def_aa='#define CONFIG_AA 1'
4392 if cygwin ; then
4393 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4395 vomodules="aa $vomodules"
4396 else
4397 def_aa='#undef CONFIG_AA'
4398 novomodules="aa $novomodules"
4400 echores "$_aa"
4403 echocheck "CACA"
4404 if test "$_caca" = auto ; then
4405 _caca=no
4406 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4407 cat > $TMPC << EOF
4408 #include <caca.h>
4409 #ifdef CACA_API_VERSION_1
4410 #include <caca0.h>
4411 #endif
4412 int main(void) { caca_init(); return 0; }
4414 cc_check $(caca-config --libs) && _caca=yes
4417 if test "$_caca" = yes ; then
4418 def_caca='#define CONFIG_CACA 1'
4419 extra_cflags="$extra_cflags $(caca-config --cflags)"
4420 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4421 vomodules="caca $vomodules"
4422 else
4423 def_caca='#undef CONFIG_CACA'
4424 novomodules="caca $novomodules"
4426 echores "$_caca"
4429 echocheck "SVGAlib"
4430 if test "$_svga" = auto ; then
4431 _svga=no
4432 header_check vga.h -lvga $_ld_lm && _svga=yes
4434 if test "$_svga" = yes ; then
4435 def_svga='#define CONFIG_SVGALIB 1'
4436 libs_mplayer="$libs_mplayer -lvga"
4437 vomodules="svga $vomodules"
4438 else
4439 def_svga='#undef CONFIG_SVGALIB'
4440 novomodules="svga $novomodules"
4442 echores "$_svga"
4445 echocheck "FBDev"
4446 if test "$_fbdev" = auto ; then
4447 _fbdev=no
4448 linux && _fbdev=yes
4450 if test "$_fbdev" = yes ; then
4451 def_fbdev='#define CONFIG_FBDEV 1'
4452 vomodules="fbdev $vomodules"
4453 else
4454 def_fbdev='#undef CONFIG_FBDEV'
4455 novomodules="fbdev $novomodules"
4457 echores "$_fbdev"
4461 echocheck "DVB"
4462 if test "$_dvb" = auto ; then
4463 _dvb=no
4464 cat >$TMPC << EOF
4465 #include <poll.h>
4466 #include <sys/ioctl.h>
4467 #include <stdio.h>
4468 #include <time.h>
4469 #include <unistd.h>
4470 #include <linux/dvb/dmx.h>
4471 #include <linux/dvb/frontend.h>
4472 #include <linux/dvb/video.h>
4473 #include <linux/dvb/audio.h>
4474 int main(void) {return 0;}
4476 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4477 cc_check $_inc_tmp && _dvb=yes && \
4478 extra_cflags="$extra_cflags $_inc_tmp" && break
4479 done
4481 echores "$_dvb"
4482 if test "$_dvb" = yes ; then
4483 _dvbin=yes
4484 inputmodules="dvb $inputmodules"
4485 def_dvb='#define CONFIG_DVB 1'
4486 def_dvbin='#define CONFIG_DVBIN 1'
4487 aomodules="mpegpes(dvb) $aomodules"
4488 vomodules="mpegpes(dvb) $vomodules"
4489 else
4490 _dvbin=no
4491 noinputmodules="dvb $noinputmodules"
4492 def_dvb='#undef CONFIG_DVB'
4493 def_dvbin='#undef CONFIG_DVBIN '
4494 aomodules="mpegpes(file) $aomodules"
4495 vomodules="mpegpes(file) $vomodules"
4499 if darwin; then
4501 echocheck "QuickTime"
4502 if test "$quicktime" = auto ; then
4503 cat > $TMPC <<EOF
4504 #include <QuickTime/QuickTime.h>
4505 int main(void) {
4506 ImageDescription *desc;
4507 EnterMovies();
4508 ExitMovies();
4509 return 0;
4512 quicktime=no
4513 cc_check -framework QuickTime && quicktime=yes
4515 if test "$quicktime" = yes ; then
4516 extra_ldflags="$extra_ldflags -framework QuickTime"
4517 def_quicktime='#define CONFIG_QUICKTIME 1'
4518 else
4519 def_quicktime='#undef CONFIG_QUICKTIME'
4520 _quartz=no
4522 echores $quicktime
4524 echocheck "Quartz"
4525 if test "$_quartz" = auto ; then
4526 _quartz=no
4527 statement_check Carbon/Carbon.h 'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon && _quartz=yes
4529 if test "$_quartz" = yes ; then
4530 libs_mplayer="$libs_mplayer -framework Carbon"
4531 def_quartz='#define CONFIG_QUARTZ 1'
4532 vomodules="quartz $vomodules"
4533 else
4534 def_quartz='#undef CONFIG_QUARTZ'
4535 novomodules="quartz $novomodules"
4537 echores $_quartz
4539 echocheck "CoreVideo"
4540 if test "$_corevideo" = auto ; then
4541 cat > $TMPC <<EOF
4542 #include <Carbon/Carbon.h>
4543 #include <CoreServices/CoreServices.h>
4544 #include <OpenGL/OpenGL.h>
4545 #include <QuartzCore/CoreVideo.h>
4546 int main(void) { return 0; }
4548 _corevideo=no
4549 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4551 if test "$_corevideo" = yes ; then
4552 vomodules="corevideo $vomodules"
4553 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4554 def_corevideo='#define CONFIG_COREVIDEO 1'
4555 else
4556 novomodules="corevideo $novomodules"
4557 def_corevideo='#undef CONFIG_COREVIDEO'
4559 echores "$_corevideo"
4561 fi #if darwin
4564 echocheck "PNG support"
4565 if test "$_png" = auto ; then
4566 _png=no
4567 if irix ; then
4568 # Don't check for -lpng on irix since it has its own libpng
4569 # incompatible with the GNU libpng
4570 res_comment="disabled on irix (not GNU libpng)"
4571 else
4572 cat > $TMPC << EOF
4573 #include <stdio.h>
4574 #include <string.h>
4575 #include <png.h>
4576 int main(void) {
4577 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4578 printf("libpng: %s\n", png_libpng_ver);
4579 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4582 cc_check -lpng -lz $_ld_lm && _png=yes
4585 echores "$_png"
4586 if test "$_png" = yes ; then
4587 def_png='#define CONFIG_PNG 1'
4588 extra_ldflags="$extra_ldflags -lpng -lz"
4589 else
4590 def_png='#undef CONFIG_PNG'
4593 echocheck "MNG support"
4594 if test "$_mng" = auto ; then
4595 _mng=no
4596 cat > $TMPC << EOF
4597 #include <libmng.h>
4598 int main(void) {
4599 const char * p_ver = mng_version_text();
4600 return !p_ver || p_ver[0] == 0;
4603 if cc_check -lmng -lz $_ld_lm ; then
4604 _mng=yes
4607 echores "$_mng"
4608 if test "$_mng" = yes ; then
4609 def_mng='#define CONFIG_MNG 1'
4610 extra_ldflags="$extra_ldflags -lmng -lz"
4611 else
4612 def_mng='#undef CONFIG_MNG'
4615 echocheck "JPEG support"
4616 if test "$_jpeg" = auto ; then
4617 _jpeg=no
4618 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4620 echores "$_jpeg"
4622 if test "$_jpeg" = yes ; then
4623 def_jpeg='#define CONFIG_JPEG 1'
4624 vomodules="jpeg $vomodules"
4625 extra_ldflags="$extra_ldflags -ljpeg"
4626 else
4627 def_jpeg='#undef CONFIG_JPEG'
4628 novomodules="jpeg $novomodules"
4633 echocheck "PNM support"
4634 if test "$_pnm" = yes; then
4635 def_pnm="#define CONFIG_PNM 1"
4636 vomodules="pnm $vomodules"
4637 else
4638 def_pnm="#undef CONFIG_PNM"
4639 novomodules="pnm $novomodules"
4641 echores "$_pnm"
4645 echocheck "GIF support"
4646 # This is to appease people who want to force gif support.
4647 # If it is forced to yes, then we still do checks to determine
4648 # which gif library to use.
4649 if test "$_gif" = yes ; then
4650 _force_gif=yes
4651 _gif=auto
4654 if test "$_gif" = auto ; then
4655 _gif=no
4656 for _ld_gif in "-lungif" "-lgif" ; do
4657 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4658 done
4661 # If no library was found, and the user wants support forced,
4662 # then we force it on with libgif, as this is the safest
4663 # assumption IMHO. (libungif & libregif both create symbolic
4664 # links to libgif. We also assume that no x11 support is needed,
4665 # because if you are forcing this, then you _should_ know what
4666 # you are doing. [ Besides, package maintainers should never
4667 # have compiled x11 deps into libungif in the first place. ] )
4668 # </rant>
4669 # --Joey
4670 if test "$_force_gif" = yes && test "$_gif" = no ; then
4671 _gif=yes
4672 _ld_gif="-lgif"
4675 if test "$_gif" = yes ; then
4676 def_gif='#define CONFIG_GIF 1'
4677 codecmodules="gif $codecmodules"
4678 vomodules="gif89a $vomodules"
4679 res_comment="old version, some encoding functions disabled"
4680 def_gif_4='#undef CONFIG_GIF_4'
4681 extra_ldflags="$extra_ldflags $_ld_gif"
4683 cat > $TMPC << EOF
4684 #include <signal.h>
4685 #include <stdio.h>
4686 #include <stdlib.h>
4687 #include <gif_lib.h>
4688 static void catch(int sig) { exit(1); }
4689 int main(void) {
4690 signal(SIGSEGV, catch); // catch segfault
4691 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4692 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4693 return 0;
4696 if cc_check "$_ld_gif" ; then
4697 def_gif_4='#define CONFIG_GIF_4 1'
4698 res_comment=""
4700 else
4701 def_gif='#undef CONFIG_GIF'
4702 def_gif_4='#undef CONFIG_GIF_4'
4703 novomodules="gif89a $novomodules"
4704 nocodecmodules="gif $nocodecmodules"
4706 echores "$_gif"
4709 case "$_gif" in yes*)
4710 echocheck "broken giflib workaround"
4711 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4713 cat > $TMPC << EOF
4714 #include <stdio.h>
4715 #include <gif_lib.h>
4716 int main(void) {
4717 GifFileType gif = {.UserData = NULL};
4718 printf("UserData is at address %p\n", gif.UserData);
4719 return 0;
4722 if cc_check "$_ld_gif" ; then
4723 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4724 echores "disabled"
4725 else
4726 echores "enabled"
4729 esac
4732 echocheck "VESA support"
4733 if test "$_vesa" = auto ; then
4734 _vesa=no
4735 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4737 if test "$_vesa" = yes ; then
4738 def_vesa='#define CONFIG_VESA 1'
4739 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4740 vomodules="vesa $vomodules"
4741 else
4742 def_vesa='#undef CONFIG_VESA'
4743 novomodules="vesa $novomodules"
4745 echores "$_vesa"
4747 #################
4748 # VIDEO + AUDIO #
4749 #################
4752 echocheck "SDL"
4753 _inc_tmp=""
4754 _ld_tmp=""
4755 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4756 if test -z "$_sdlconfig" ; then
4757 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4758 _sdlconfig="sdl-config"
4759 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4760 _sdlconfig="sdl11-config"
4761 else
4762 _sdlconfig=false
4765 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4766 cat > $TMPC << EOF
4767 #ifdef CONFIG_SDL_SDL_H
4768 #include <SDL/SDL.h>
4769 #else
4770 #include <SDL.h>
4771 #endif
4772 #ifndef __APPLE__
4773 // we allow SDL hacking our main() only on OSX
4774 #undef main
4775 #endif
4776 int main(int argc, char *argv[]) {
4777 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4778 return 0;
4781 _sdl=no
4782 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4783 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4784 _sdl=yes
4785 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4786 break
4788 done
4789 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4790 res_comment="using $_sdlconfig"
4791 if cygwin ; then
4792 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4793 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4794 elif mingw32 ; then
4795 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4796 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4797 else
4798 _inc_tmp="$($_sdlconfig --cflags)"
4799 _ld_tmp="$($_sdlconfig --libs)"
4801 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4802 _sdl=yes
4803 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4804 # HACK for BeOS/Haiku SDL
4805 _ld_tmp="$_ld_tmp -lstdc++"
4806 _sdl=yes
4810 if test "$_sdl" = yes ; then
4811 def_sdl='#define CONFIG_SDL 1'
4812 extra_cflags="$extra_cflags $_inc_tmp"
4813 libs_mplayer="$libs_mplayer $_ld_tmp"
4814 vomodules="sdl $vomodules"
4815 aomodules="sdl $aomodules"
4816 else
4817 def_sdl='#undef CONFIG_SDL'
4818 novomodules="sdl $novomodules"
4819 noaomodules="sdl $noaomodules"
4821 echores "$_sdl"
4824 # make sure this stays below CoreVideo to avoid issues due to namespace
4825 # conflicts between -lGL and -framework OpenGL
4826 echocheck "OpenGL"
4827 #Note: this test is run even with --enable-gl since we autodetect linker flags
4828 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
4829 cat > $TMPC << EOF
4830 #ifdef GL_WIN32
4831 #include <windows.h>
4832 #include <GL/gl.h>
4833 #elif defined(GL_SDL)
4834 #include <GL/gl.h>
4835 #ifdef CONFIG_SDL_SDL_H
4836 #include <SDL/SDL.h>
4837 #else
4838 #include <SDL.h>
4839 #endif
4840 #ifndef __APPLE__
4841 // we allow SDL hacking our main() only on OSX
4842 #undef main
4843 #endif
4844 #else
4845 #include <GL/gl.h>
4846 #include <X11/Xlib.h>
4847 #include <GL/glx.h>
4848 #endif
4849 int main(int argc, char *argv[]) {
4850 #ifdef GL_WIN32
4851 HDC dc;
4852 wglCreateContext(dc);
4853 #elif defined(GL_SDL)
4854 SDL_GL_SwapBuffers();
4855 #else
4856 glXCreateContext(NULL, NULL, NULL, True);
4857 #endif
4858 glFinish();
4859 return 0;
4862 _gl=no
4863 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4864 if cc_check $_ld_tmp $_ld_lm ; then
4865 _gl=yes
4866 _gl_x11=yes
4867 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4868 break
4870 done
4871 if cc_check -DGL_WIN32 -lopengl32 ; then
4872 _gl=yes
4873 _gl_win32=yes
4874 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4876 # last so it can reuse any linker etc. flags detected before
4877 if test "$_sdl" = yes ; then
4878 if cc_check -DGL_SDL ||
4879 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4880 _gl=yes
4881 _gl_sdl=yes
4882 elif cc_check -DGL_SDL -lGL ||
4883 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4884 _gl=yes
4885 _gl_sdl=yes
4886 libs_mplayer="$libs_mplayer -lGL"
4889 else
4890 _gl=no
4892 if test "$_gl" = yes ; then
4893 def_gl='#define CONFIG_GL 1'
4894 res_comment="backends:"
4895 if test "$_gl_win32" = yes ; then
4896 def_gl_win32='#define CONFIG_GL_WIN32 1'
4897 res_comment="$res_comment win32"
4899 if test "$_gl_x11" = yes ; then
4900 def_gl_x11='#define CONFIG_GL_X11 1'
4901 res_comment="$res_comment x11"
4903 if test "$_gl_sdl" = yes ; then
4904 def_gl_sdl='#define CONFIG_GL_SDL 1'
4905 res_comment="$res_comment sdl"
4907 vomodules="opengl $vomodules"
4908 else
4909 def_gl='#undef CONFIG_GL'
4910 def_gl_win32='#undef CONFIG_GL_WIN32'
4911 def_gl_x11='#undef CONFIG_GL_X11'
4912 def_gl_sdl='#undef CONFIG_GL_SDL'
4913 novomodules="opengl $novomodules"
4915 echores "$_gl"
4918 echocheck "MatrixView"
4919 if test "$_gl" = no ; then
4920 matrixview=no
4922 if test "$matrixview" = yes ; then
4923 vomodules="matrixview $vomodules"
4924 def_matrixview='#define CONFIG_MATRIXVIEW 1'
4925 else
4926 novomodules="matrixview $novomodules"
4927 def_matrixview='#undef CONFIG_MATRIXVIEW'
4929 echores "$matrixview"
4932 if os2 ; then
4933 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4934 if test "$_kva" = auto; then
4935 _kva=no;
4936 header_check_broken os2.h kva.h -lkva && _kva=yes
4938 if test "$_kva" = yes ; then
4939 def_kva='#define CONFIG_KVA 1'
4940 libs_mplayer="$libs_mplayer -lkva"
4941 vomodules="kva $vomodules"
4942 else
4943 def_kva='#undef CONFIG_KVA'
4944 novomodules="kva $novomodules"
4946 echores "$_kva"
4947 fi #if os2
4950 if win32; then
4952 echocheck "Windows waveout"
4953 if test "$_win32waveout" = auto ; then
4954 _win32waveout=no
4955 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4957 if test "$_win32waveout" = yes ; then
4958 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4959 libs_mplayer="$libs_mplayer -lwinmm"
4960 aomodules="win32 $aomodules"
4961 else
4962 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4963 noaomodules="win32 $noaomodules"
4965 echores "$_win32waveout"
4967 echocheck "Direct3D"
4968 if test "$_direct3d" = auto ; then
4969 _direct3d=no
4970 header_check d3d9.h && _direct3d=yes
4972 if test "$_direct3d" = yes ; then
4973 def_direct3d='#define CONFIG_DIRECT3D 1'
4974 vomodules="direct3d $vomodules"
4975 else
4976 def_direct3d='#undef CONFIG_DIRECT3D'
4977 novomodules="direct3d $novomodules"
4979 echores "$_direct3d"
4981 echocheck "Directx"
4982 if test "$_directx" = auto ; then
4983 cat > $TMPC << EOF
4984 #include <ddraw.h>
4985 #include <dsound.h>
4986 int main(void) { return 0; }
4988 _directx=no
4989 cc_check -lgdi32 && _directx=yes
4991 if test "$_directx" = yes ; then
4992 def_directx='#define CONFIG_DIRECTX 1'
4993 libs_mplayer="$libs_mplayer -lgdi32"
4994 vomodules="directx $vomodules"
4995 aomodules="dsound $aomodules"
4996 else
4997 def_directx='#undef CONFIG_DIRECTX'
4998 novomodules="directx $novomodules"
4999 noaomodules="dsound $noaomodules"
5001 echores "$_directx"
5003 fi #if win32; then
5006 echocheck "DXR2"
5007 if test "$_dxr2" = auto; then
5008 _dxr2=no
5009 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5010 header_check dxr2ioctl.h $_inc_tmp && _dxr2=yes &&
5011 extra_cflags="$extra_cflags $_inc_tmp" && break
5012 done
5014 if test "$_dxr2" = yes; then
5015 def_dxr2='#define CONFIG_DXR2 1'
5016 aomodules="dxr2 $aomodules"
5017 vomodules="dxr2 $vomodules"
5018 else
5019 def_dxr2='#undef CONFIG_DXR2'
5020 noaomodules="dxr2 $noaomodules"
5021 novomodules="dxr2 $novomodules"
5023 echores "$_dxr2"
5025 echocheck "DXR3/H+"
5026 if test "$_dxr3" = auto ; then
5027 _dxr3=no
5028 header_check linux/em8300.h && _dxr3=yes
5030 if test "$_dxr3" = yes ; then
5031 def_dxr3='#define CONFIG_DXR3 1'
5032 vomodules="dxr3 $vomodules"
5033 else
5034 def_dxr3='#undef CONFIG_DXR3'
5035 novomodules="dxr3 $novomodules"
5037 echores "$_dxr3"
5040 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5041 if test "$_ivtv" = auto ; then
5042 cat > $TMPC << EOF
5043 #include <stdlib.h>
5044 #include <inttypes.h>
5045 #include <linux/types.h>
5046 #include <linux/videodev2.h>
5047 #include <linux/ivtv.h>
5048 #include <sys/ioctl.h>
5049 int main(void) {
5050 struct ivtv_cfg_stop_decode sd;
5051 struct ivtv_cfg_start_decode sd1;
5052 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5053 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5054 return 0; }
5056 _ivtv=no
5057 cc_check && _ivtv=yes
5059 if test "$_ivtv" = yes ; then
5060 def_ivtv='#define CONFIG_IVTV 1'
5061 vomodules="ivtv $vomodules"
5062 aomodules="ivtv $aomodules"
5063 else
5064 def_ivtv='#undef CONFIG_IVTV'
5065 novomodules="ivtv $novomodules"
5066 noaomodules="ivtv $noaomodules"
5068 echores "$_ivtv"
5071 echocheck "V4L2 MPEG Decoder"
5072 if test "$_v4l2" = auto ; then
5073 cat > $TMPC << EOF
5074 #include <stdlib.h>
5075 #include <inttypes.h>
5076 #include <linux/types.h>
5077 #include <linux/videodev2.h>
5078 #include <linux/version.h>
5079 int main(void) {
5080 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5081 #error kernel headers too old, need 2.6.22
5082 #endif
5083 struct v4l2_ext_controls ctrls;
5084 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5085 return 0;
5088 _v4l2=no
5089 cc_check && _v4l2=yes
5091 if test "$_v4l2" = yes ; then
5092 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5093 vomodules="v4l2 $vomodules"
5094 aomodules="v4l2 $aomodules"
5095 else
5096 def_v4l2='#undef CONFIG_V4L2_DECODER'
5097 novomodules="v4l2 $novomodules"
5098 noaomodules="v4l2 $noaomodules"
5100 echores "$_v4l2"
5104 #########
5105 # AUDIO #
5106 #########
5109 echocheck "OSS Audio"
5110 if test "$_ossaudio" = auto ; then
5111 cat > $TMPC << EOF
5112 #include <$_soundcard_header>
5113 int main(void) { return SNDCTL_DSP_SETFRAGMENT; }
5115 _ossaudio=no
5116 cc_check && _ossaudio=yes
5118 if test "$_ossaudio" = yes ; then
5119 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5120 aomodules="oss $aomodules"
5121 cat > $TMPC << EOF
5122 #include <$_soundcard_header>
5123 #ifdef OPEN_SOUND_SYSTEM
5124 int main(void) { return 0; }
5125 #else
5126 #error Not the real thing
5127 #endif
5129 _real_ossaudio=no
5130 cc_check && _real_ossaudio=yes
5131 if test "$_real_ossaudio" = yes; then
5132 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5133 # Check for OSS4 headers (override default headers)
5134 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5135 if test -f /etc/oss.conf; then
5136 . /etc/oss.conf
5137 _ossinc="$OSSLIBDIR/include"
5138 if test -f "$_ossinc/sys/soundcard.h"; then
5139 extra_cflags="-I$_ossinc $extra_cflags"
5142 elif netbsd || openbsd ; then
5143 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5144 extra_ldflags="$extra_ldflags -lossaudio"
5145 else
5146 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5148 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5149 else
5150 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5151 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5152 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5153 noaomodules="oss $noaomodules"
5155 echores "$_ossaudio"
5158 echocheck "aRts"
5159 if test "$_arts" = auto ; then
5160 _arts=no
5161 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5162 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
5163 _arts=yes
5167 if test "$_arts" = yes ; then
5168 def_arts='#define CONFIG_ARTS 1'
5169 aomodules="arts $aomodules"
5170 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5171 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5172 else
5173 noaomodules="arts $noaomodules"
5175 echores "$_arts"
5178 echocheck "EsounD"
5179 if test "$_esd" = auto ; then
5180 _esd=no
5181 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5182 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5185 echores "$_esd"
5187 if test "$_esd" = yes ; then
5188 def_esd='#define CONFIG_ESD 1'
5189 aomodules="esd $aomodules"
5190 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5191 extra_cflags="$extra_cflags $(esd-config --cflags)"
5193 echocheck "esd_get_latency()"
5194 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
5195 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5196 echores "$_esd_latency"
5197 else
5198 def_esd='#undef CONFIG_ESD'
5199 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5200 noaomodules="esd $noaomodules"
5204 echocheck "NAS"
5205 if test "$_nas" = auto ; then
5206 _nas=no
5207 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
5209 if test "$_nas" = yes ; then
5210 def_nas='#define CONFIG_NAS 1'
5211 libs_mplayer="$libs_mplayer -laudio -lXt"
5212 aomodules="nas $aomodules"
5213 else
5214 noaomodules="nas $noaomodules"
5215 def_nas='#undef CONFIG_NAS'
5217 echores "$_nas"
5220 echocheck "pulse"
5221 if test "$_pulse" = auto ; then
5222 _pulse=no
5223 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5224 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
5225 _pulse=yes
5228 echores "$_pulse"
5230 if test "$_pulse" = yes ; then
5231 def_pulse='#define CONFIG_PULSE 1'
5232 aomodules="pulse $aomodules"
5233 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5234 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5235 else
5236 def_pulse='#undef CONFIG_PULSE'
5237 noaomodules="pulse $noaomodules"
5241 echocheck "JACK"
5242 if test "$_jack" = auto ; then
5243 _jack=yes
5244 if statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
5245 libs_mplayer="$libs_mplayer -ljack"
5246 elif statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' $($_pkg_config --libs --cflags --silence-errors jack) ; then
5247 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5248 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5249 else
5250 _jack=no
5254 if test "$_jack" = yes ; then
5255 def_jack='#define CONFIG_JACK 1'
5256 aomodules="jack $aomodules"
5257 else
5258 noaomodules="jack $noaomodules"
5260 echores "$_jack"
5262 echocheck "OpenAL"
5263 if test "$_openal" = auto ; then
5264 _openal=no
5265 cat > $TMPC << EOF
5266 #ifdef OPENAL_AL_H
5267 #include <OpenAL/al.h>
5268 #else
5269 #include <AL/al.h>
5270 #endif
5271 int main(void) {
5272 alSourceQueueBuffers(0, 0, 0);
5273 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5274 return 0;
5277 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5278 cc_check $I && _openal=yes && break
5279 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5280 done
5281 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5283 if test "$_openal" = yes ; then
5284 def_openal='#define CONFIG_OPENAL 1'
5285 aomodules="openal $aomodules"
5286 else
5287 noaomodules="openal $noaomodules"
5289 echores "$_openal"
5291 echocheck "ALSA audio"
5292 if test "$_alloca" != yes ; then
5293 _alsa=no
5294 res_comment="alloca missing"
5296 if test "$_alsa" != no ; then
5297 _alsa=no
5298 cat > $TMPC << EOF
5299 #include <sys/asoundlib.h>
5300 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5301 #error "alsa version != 0.5.x"
5302 #endif
5303 int main(void) { return 0; }
5305 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5307 cat > $TMPC << EOF
5308 #include <sys/asoundlib.h>
5309 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5310 #error "alsa version != 0.9.x"
5311 #endif
5312 int main(void) { return 0; }
5314 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5315 cat > $TMPC << EOF
5316 #include <alsa/asoundlib.h>
5317 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5318 #error "alsa version != 0.9.x"
5319 #endif
5320 int main(void) { return 0; }
5322 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5324 cat > $TMPC << EOF
5325 #include <sys/asoundlib.h>
5326 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5327 #error "alsa version != 1.0.x"
5328 #endif
5329 int main(void) { return 0; }
5331 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5332 cat > $TMPC << EOF
5333 #include <alsa/asoundlib.h>
5334 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5335 #error "alsa version != 1.0.x"
5336 #endif
5337 int main(void) { return 0; }
5339 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5341 def_alsa='#undef CONFIG_ALSA'
5342 def_alsa5='#undef CONFIG_ALSA5'
5343 def_alsa9='#undef CONFIG_ALSA9'
5344 def_alsa1x='#undef CONFIG_ALSA1X'
5345 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5346 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5347 if test "$_alsaver" ; then
5348 _alsa=yes
5349 if test "$_alsaver" = '0.5.x' ; then
5350 _alsa5=yes
5351 aomodules="alsa5 $aomodules"
5352 def_alsa5='#define CONFIG_ALSA5 1'
5353 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5354 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5355 elif test "$_alsaver" = '0.9.x-sys' ; then
5356 _alsa9=yes
5357 aomodules="alsa $aomodules"
5358 def_alsa='#define CONFIG_ALSA 1'
5359 def_alsa9='#define CONFIG_ALSA9 1'
5360 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5361 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5362 elif test "$_alsaver" = '0.9.x-alsa' ; then
5363 _alsa9=yes
5364 aomodules="alsa $aomodules"
5365 def_alsa='#define CONFIG_ALSA 1'
5366 def_alsa9='#define CONFIG_ALSA9 1'
5367 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5368 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5369 elif test "$_alsaver" = '1.0.x-sys' ; then
5370 _alsa1x=yes
5371 aomodules="alsa $aomodules"
5372 def_alsa='#define CONFIG_ALSA 1'
5373 def_alsa1x="#define CONFIG_ALSA1X 1"
5374 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5375 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5376 elif test "$_alsaver" = '1.0.x-alsa' ; then
5377 _alsa1x=yes
5378 aomodules="alsa $aomodules"
5379 def_alsa='#define CONFIG_ALSA 1'
5380 def_alsa1x="#define CONFIG_ALSA1X 1"
5381 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5382 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5383 else
5384 _alsa=no
5385 res_comment="unknown version"
5387 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5388 else
5389 noaomodules="alsa $noaomodules"
5391 echores "$_alsa"
5394 echocheck "Sun audio"
5395 if test "$_sunaudio" = auto ; then
5396 cat > $TMPC << EOF
5397 #include <sys/types.h>
5398 #include <sys/audioio.h>
5399 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5401 _sunaudio=no
5402 cc_check && _sunaudio=yes
5404 if test "$_sunaudio" = yes ; then
5405 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5406 aomodules="sun $aomodules"
5407 else
5408 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5409 noaomodules="sun $noaomodules"
5411 echores "$_sunaudio"
5414 def_mlib='#define CONFIG_MLIB 0'
5415 if sunos; then
5416 echocheck "Sun mediaLib"
5417 if test "$_mlib" = auto ; then
5418 _mlib=no
5419 cc_check mlib.h "mlib_VideoColorYUV2ABGR420(0, 0, 0, 0, 0, 0, 0, 0, 0)" -lmlib &&
5420 _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5422 echores "$_mlib"
5423 fi #if sunos
5426 if darwin; then
5427 echocheck "CoreAudio"
5428 if test "$_coreaudio" = auto ; then
5429 cat > $TMPC <<EOF
5430 #include <CoreAudio/CoreAudio.h>
5431 #include <AudioToolbox/AudioToolbox.h>
5432 #include <AudioUnit/AudioUnit.h>
5433 int main(void) { return 0; }
5435 _coreaudio=no
5436 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5438 if test "$_coreaudio" = yes ; then
5439 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5440 def_coreaudio='#define CONFIG_COREAUDIO 1'
5441 aomodules="coreaudio $aomodules"
5442 else
5443 def_coreaudio='#undef CONFIG_COREAUDIO'
5444 noaomodules="coreaudio $noaomodules"
5446 echores $_coreaudio
5447 fi #if darwin
5450 if irix; then
5451 echocheck "SGI audio"
5452 if test "$_sgiaudio" = auto ; then
5453 _sgiaudio=no
5454 header_check dmedia/audio.h && _sgiaudio=yes
5456 if test "$_sgiaudio" = "yes" ; then
5457 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5458 libs_mplayer="$libs_mplayer -laudio"
5459 aomodules="sgi $aomodules"
5460 else
5461 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5462 noaomodules="sgi $noaomodules"
5464 echores "$_sgiaudio"
5465 fi #if irix
5468 if os2 ; then
5469 echocheck "KAI (UNIAUD/DART)"
5470 if test "$_kai" = auto; then
5471 _kai=no;
5472 header_check_broken os2.h kai.h -lkai && _kai=yes
5474 if test "$_kai" = yes ; then
5475 def_kai='#define CONFIG_KAI 1'
5476 libs_mplayer="$libs_mplayer -lkai"
5477 aomodules="kai $aomodules"
5478 else
5479 def_kai='#undef CONFIG_KAI'
5480 noaomodules="kai $noaomodules"
5482 echores "$_kai"
5484 echocheck "DART"
5485 if test "$_dart" = auto; then
5486 _dart=no;
5487 header_check_broken os2.h dart.h -ldart && _dart=yes
5489 if test "$_dart" = yes ; then
5490 def_dart='#define CONFIG_DART 1'
5491 libs_mplayer="$libs_mplayer -ldart"
5492 aomodules="dart $aomodules"
5493 else
5494 def_dart='#undef CONFIG_DART'
5495 noaomodules="dart $noaomodules"
5497 echores "$_dart"
5498 fi #if os2
5501 # set default CD/DVD devices
5502 if win32 || os2 ; then
5503 default_cdrom_device="D:"
5504 elif darwin ; then
5505 default_cdrom_device="/dev/disk1"
5506 elif dragonfly ; then
5507 default_cdrom_device="/dev/cd0"
5508 elif freebsd ; then
5509 default_cdrom_device="/dev/acd0"
5510 elif openbsd ; then
5511 default_cdrom_device="/dev/rcd0c"
5512 elif sunos ; then
5513 default_cdrom_device="/vol/dev/aliases/cdrom0"
5514 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5515 # file system and the volfs service.
5516 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5517 elif amigaos ; then
5518 default_cdrom_device="a1ide.device:2"
5519 else
5520 default_cdrom_device="/dev/cdrom"
5523 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5524 default_dvd_device=$default_cdrom_device
5525 elif darwin ; then
5526 default_dvd_device="/dev/rdiskN"
5527 else
5528 default_dvd_device="/dev/dvd"
5532 echocheck "VCD support"
5533 if test "$_vcd" = auto; then
5534 _vcd=no
5535 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5536 _vcd=yes
5537 elif mingw32; then
5538 header_check ddk/ntddcdrm.h && _vcd=yes
5541 if test "$_vcd" = yes; then
5542 inputmodules="vcd $inputmodules"
5543 def_vcd='#define CONFIG_VCD 1'
5544 else
5545 def_vcd='#undef CONFIG_VCD'
5546 noinputmodules="vcd $noinputmodules"
5547 res_comment="not supported on this OS"
5549 echores "$_vcd"
5553 echocheck "Blu-ray support"
5554 if test "$_bluray" = auto ; then
5555 _bluray=no
5556 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0)' -lbluray && _bluray=yes
5558 if test "$_bluray" = yes ; then
5559 def_bluray='#define CONFIG_LIBBLURAY 1'
5560 extra_ldflags="$extra_ldflags -lbluray"
5561 inputmodules="bluray $inputmodules"
5562 else
5563 def_bluray='#undef CONFIG_LIBBLURAY'
5564 noinputmodules="bluray $noinputmodules"
5566 echores "$_bluray"
5568 echocheck "dvdread"
5569 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5570 _dvdread_internal=no
5572 if test "$_dvdread_internal" = auto ; then
5573 _dvdread_internal=no
5574 _dvdread=no
5575 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5576 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5577 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5578 || darwin || win32 || os2; then
5579 _dvdread_internal=yes
5580 _dvdread=yes
5581 extra_cflags="-Ilibdvdread4 $extra_cflags"
5583 elif test "$_dvdread" = auto ; then
5584 _dvdread=no
5585 if test "$_dl" = yes; then
5586 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5587 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5588 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5589 _dvdread=yes
5590 extra_cflags="$extra_cflags $_dvdreadcflags"
5591 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5592 res_comment="external"
5597 if test "$_dvdread_internal" = yes; then
5598 def_dvdread='#define CONFIG_DVDREAD 1'
5599 inputmodules="dvdread(internal) $inputmodules"
5600 _largefiles=yes
5601 res_comment="internal"
5602 elif test "$_dvdread" = yes; then
5603 def_dvdread='#define CONFIG_DVDREAD 1'
5604 _largefiles=yes
5605 extra_ldflags="$extra_ldflags -ldvdread"
5606 inputmodules="dvdread(external) $inputmodules"
5607 res_comment="external"
5608 else
5609 def_dvdread='#undef CONFIG_DVDREAD'
5610 noinputmodules="dvdread $noinputmodules"
5612 echores "$_dvdread"
5615 echocheck "internal libdvdcss"
5616 if test "$_libdvdcss_internal" = auto ; then
5617 _libdvdcss_internal=no
5618 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5619 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5621 if test "$_libdvdcss_internal" = yes ; then
5622 if linux || netbsd || openbsd || bsdos ; then
5623 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5624 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5625 elif freebsd || dragonfly ; then
5626 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5627 elif darwin ; then
5628 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5629 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5630 elif cygwin ; then
5631 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5632 elif beos ; then
5633 cflags_libdvdcss="-DSYS_BEOS"
5634 elif os2 ; then
5635 cflags_libdvdcss="-DSYS_OS2"
5637 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5638 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5639 inputmodules="libdvdcss(internal) $inputmodules"
5640 _largefiles=yes
5641 else
5642 noinputmodules="libdvdcss(internal) $noinputmodules"
5644 echores "$_libdvdcss_internal"
5647 echocheck "cdparanoia"
5648 if test "$_cdparanoia" = auto ; then
5649 cat > $TMPC <<EOF
5650 #include <cdda_interface.h>
5651 #include <cdda_paranoia.h>
5652 // This need a better test. How ?
5653 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5655 _cdparanoia=no
5656 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5657 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5658 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5659 done
5661 if test "$_cdparanoia" = yes ; then
5662 _cdda='yes'
5663 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5664 openbsd && extra_ldflags="$extra_ldflags -lutil"
5666 echores "$_cdparanoia"
5669 echocheck "libcdio"
5670 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5671 cat > $TMPC << EOF
5672 #include <stdio.h>
5673 #include <cdio/version.h>
5674 #include <cdio/cdda.h>
5675 #include <cdio/paranoia.h>
5676 int main(void) {
5677 void *test = cdda_verbose_set;
5678 printf("%s\n", CDIO_VERSION);
5679 return test == (void *)1;
5682 _libcdio=no
5683 for _ld_tmp in "" "-lwinmm" ; do
5684 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5685 cc_check $_ld_tmp $_ld_lm \
5686 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5687 done
5688 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5689 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5690 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5691 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5692 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5695 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5696 _cdda='yes'
5697 def_libcdio='#define CONFIG_LIBCDIO 1'
5698 def_havelibcdio='yes'
5699 else
5700 if test "$_cdparanoia" = yes ; then
5701 res_comment="using cdparanoia"
5703 def_libcdio='#undef CONFIG_LIBCDIO'
5704 def_havelibcdio='no'
5706 echores "$_libcdio"
5708 if test "$_cdda" = yes ; then
5709 test $_cddb = auto && test $networking = yes && _cddb=yes
5710 def_cdparanoia='#define CONFIG_CDDA 1'
5711 inputmodules="cdda $inputmodules"
5712 else
5713 def_cdparanoia='#undef CONFIG_CDDA'
5714 noinputmodules="cdda $noinputmodules"
5717 if test "$_cddb" = yes ; then
5718 def_cddb='#define CONFIG_CDDB 1'
5719 inputmodules="cddb $inputmodules"
5720 else
5721 _cddb=no
5722 def_cddb='#undef CONFIG_CDDB'
5723 noinputmodules="cddb $noinputmodules"
5726 echocheck "bitmap font support"
5727 if test "$_bitmap_font" = yes ; then
5728 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5729 else
5730 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5732 echores "$_bitmap_font"
5735 echocheck "freetype >= 2.0.9"
5737 # freetype depends on iconv
5738 if test "$_iconv" = no ; then
5739 _freetype=no
5740 res_comment="iconv support needed"
5743 if test "$_freetype" = auto ; then
5744 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5745 cat > $TMPC << EOF
5746 #include <stdio.h>
5747 #include <ft2build.h>
5748 #include FT_FREETYPE_H
5749 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5750 #error "Need FreeType 2.0.9 or newer"
5751 #endif
5752 int main(void) {
5753 FT_Library library;
5754 FT_Init_FreeType(&library);
5755 return 0;
5758 _freetype=no
5759 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5760 else
5761 _freetype=no
5764 if test "$_freetype" = yes ; then
5765 def_freetype='#define CONFIG_FREETYPE 1'
5766 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5767 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5768 else
5769 def_freetype='#undef CONFIG_FREETYPE'
5771 echores "$_freetype"
5773 if test "$_freetype" = no ; then
5774 _fontconfig=no
5775 res_comment="FreeType support needed"
5777 echocheck "fontconfig"
5778 if test "$_fontconfig" = auto ; then
5779 cat > $TMPC << EOF
5780 #include <stdio.h>
5781 #include <stdlib.h>
5782 #include <fontconfig/fontconfig.h>
5783 #if FC_VERSION < 20402
5784 #error At least version 2.4.2 of fontconfig required
5785 #endif
5786 int main(void) {
5787 int err = FcInit();
5788 if (err == FcFalse) {
5789 printf("Couldn't initialize fontconfig lib\n");
5790 exit(err);
5792 return 0;
5795 _fontconfig=no
5796 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5797 _ld_tmp="-lfontconfig $_ld_tmp"
5798 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5799 done
5800 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5801 _inc_tmp=$($_pkg_config --cflags fontconfig)
5802 _ld_tmp=$($_pkg_config --libs fontconfig)
5803 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
5804 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5807 if test "$_fontconfig" = yes ; then
5808 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5809 else
5810 def_fontconfig='#undef CONFIG_FONTCONFIG'
5812 echores "$_fontconfig"
5815 echocheck "SSA/ASS support"
5816 if test "$_ass" = auto -o "$_ass" = yes ; then
5817 if $_pkg_config libass; then
5818 _ass=yes
5819 def_ass='#define CONFIG_ASS 1'
5820 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5821 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5822 else
5823 _ass=no
5824 def_ass='#undef CONFIG_ASS'
5826 else
5827 def_ass='#undef CONFIG_ASS'
5829 echores "$_ass"
5832 echocheck "fribidi with charsets"
5833 _inc_tmp=""
5834 _ld_tmp=""
5835 if test "$_fribidi" = auto ; then
5836 cat > $TMPC << EOF
5837 #include <stdlib.h>
5838 /* workaround for fribidi 0.10.4 and below */
5839 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5840 #include <fribidi/fribidi.h>
5841 int main(void) {
5842 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5843 exit(1);
5844 return 0;
5847 _fribidi=no
5848 _inc_tmp=""
5849 _ld_tmp="-lfribidi"
5850 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5851 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
5852 test "$_fribidi" = no ; then
5853 _inc_tmp="$($_pkg_config --cflags)"
5854 _ld_tmp="$($_pkg_config --libs)"
5855 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5858 if test "$_fribidi" = yes ; then
5859 def_fribidi='#define CONFIG_FRIBIDI 1'
5860 extra_cflags="$extra_cflags $_inc_tmp"
5861 extra_ldflags="$extra_ldflags $_ld_tmp"
5862 else
5863 def_fribidi='#undef CONFIG_FRIBIDI'
5865 echores "$_fribidi"
5868 echocheck "ENCA"
5869 if test "$_enca" = auto ; then
5870 _enca=no
5871 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5873 if test "$_enca" = yes ; then
5874 def_enca='#define CONFIG_ENCA 1'
5875 extra_ldflags="$extra_ldflags -lenca"
5876 else
5877 def_enca='#undef CONFIG_ENCA'
5879 echores "$_enca"
5882 echocheck "zlib"
5883 _zlib=no
5884 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5885 if test "$_zlib" = yes ; then
5886 def_zlib='#define CONFIG_ZLIB 1'
5887 extra_ldflags="$extra_ldflags -lz"
5888 else
5889 def_zlib='#define CONFIG_ZLIB 0'
5891 echores "$_zlib"
5894 echocheck "bzlib"
5895 bzlib=no
5896 def_bzlib='#define CONFIG_BZLIB 0'
5897 statement_check bzlib.h 'BZ2_bzlibVersion()' -lbz2 && bzlib=yes
5898 if test "$bzlib" = yes ; then
5899 def_bzlib='#define CONFIG_BZLIB 1'
5900 extra_ldflags="$extra_ldflags -lbz2"
5902 echores "$bzlib"
5905 echocheck "RTC"
5906 if test "$_rtc" = auto ; then
5907 cat > $TMPC << EOF
5908 #include <sys/ioctl.h>
5909 #ifdef __linux__
5910 #include <linux/rtc.h>
5911 #else
5912 #include <rtc.h>
5913 #define RTC_PIE_ON RTCIO_PIE_ON
5914 #endif
5915 int main(void) { return RTC_PIE_ON; }
5917 _rtc=no
5918 cc_check && _rtc=yes
5919 ppc && _rtc=no
5921 if test "$_rtc" = yes ; then
5922 def_rtc='#define HAVE_RTC 1'
5923 else
5924 def_rtc='#undef HAVE_RTC'
5926 echores "$_rtc"
5929 echocheck "liblzo2 support"
5930 if test "$_liblzo" = auto ; then
5931 _liblzo=no
5932 statement_check lzo/lzo1x.h 'lzo_init()' -llzo2 && _liblzo=yes
5934 if test "$_liblzo" = yes ; then
5935 def_liblzo='#define CONFIG_LIBLZO 1'
5936 extra_ldflags="$extra_ldflags -llzo2"
5937 codecmodules="liblzo $codecmodules"
5938 else
5939 def_liblzo='#undef CONFIG_LIBLZO'
5940 nocodecmodules="liblzo $nocodecmodules"
5942 echores "$_liblzo"
5945 echocheck "mad support"
5946 if test "$_mad" = auto ; then
5947 _mad=no
5948 header_check mad.h -lmad && _mad=yes
5950 if test "$_mad" = yes ; then
5951 def_mad='#define CONFIG_LIBMAD 1'
5952 extra_ldflags="$extra_ldflags -lmad"
5953 codecmodules="libmad $codecmodules"
5954 else
5955 def_mad='#undef CONFIG_LIBMAD'
5956 nocodecmodules="libmad $nocodecmodules"
5958 echores "$_mad"
5960 echocheck "Twolame"
5961 if test "$_twolame" = auto ; then
5962 _twolame=no
5963 statement_check twolame.h 'twolame_init()' -ltwolame $_ld_lm && _twolame=yes
5965 if test "$_twolame" = yes ; then
5966 def_twolame='#define CONFIG_TWOLAME 1'
5967 libs_mencoder="$libs_mencoder -ltwolame"
5968 codecmodules="twolame $codecmodules"
5969 else
5970 def_twolame='#undef CONFIG_TWOLAME'
5971 nocodecmodules="twolame $nocodecmodules"
5973 echores "$_twolame"
5975 echocheck "Toolame"
5976 if test "$_toolame" = auto ; then
5977 _toolame=no
5978 if test "$_twolame" = yes ; then
5979 res_comment="disabled by twolame"
5980 else
5981 statement_check toolame.h 'toolame_init()' -ltoolame $_ld_lm && _toolame=yes
5984 if test "$_toolame" = yes ; then
5985 def_toolame='#define CONFIG_TOOLAME 1'
5986 libs_mencoder="$libs_mencoder -ltoolame"
5987 codecmodules="toolame $codecmodules"
5988 else
5989 def_toolame='#undef CONFIG_TOOLAME'
5990 nocodecmodules="toolame $nocodecmodules"
5992 if test "$_toolamedir" ; then
5993 res_comment="using $_toolamedir"
5995 echores "$_toolame"
5997 echocheck "OggVorbis support"
5998 if test "$_tremor_internal" = yes; then
5999 _libvorbis=no
6000 elif test "$_tremor" = auto; then
6001 _tremor=no
6002 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6004 if test "$_libvorbis" = auto; then
6005 _libvorbis=no
6006 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes
6008 if test "$_tremor_internal" = yes ; then
6009 _vorbis=yes
6010 def_vorbis='#define CONFIG_OGGVORBIS 1'
6011 def_tremor='#define CONFIG_TREMOR 1'
6012 codecmodules="tremor(internal) $codecmodules"
6013 res_comment="internal Tremor"
6014 if test "$_tremor_low" = yes ; then
6015 cflags_tremor_low="-D_LOW_ACCURACY_"
6016 res_comment="internal low accuracy Tremor"
6018 elif test "$_tremor" = yes ; then
6019 _vorbis=yes
6020 def_vorbis='#define CONFIG_OGGVORBIS 1'
6021 def_tremor='#define CONFIG_TREMOR 1'
6022 codecmodules="tremor(external) $codecmodules"
6023 res_comment="external Tremor"
6024 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6025 elif test "$_libvorbis" = yes ; then
6026 _vorbis=yes
6027 def_vorbis='#define CONFIG_OGGVORBIS 1'
6028 codecmodules="libvorbis $codecmodules"
6029 res_comment="libvorbis"
6030 extra_ldflags="$extra_ldflags -lvorbis -logg"
6031 else
6032 _vorbis=no
6033 nocodecmodules="libvorbis $nocodecmodules"
6035 echores "$_vorbis"
6037 echocheck "libspeex (version >= 1.1 required)"
6038 if test "$_speex" = auto ; then
6039 _speex=no
6040 cat > $TMPC << EOF
6041 #include <stddef.h>
6042 #include <speex/speex.h>
6043 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
6045 cc_check -lspeex $_ld_lm && _speex=yes
6047 if test "$_speex" = yes ; then
6048 def_speex='#define CONFIG_SPEEX 1'
6049 extra_ldflags="$extra_ldflags -lspeex"
6050 codecmodules="speex $codecmodules"
6051 else
6052 def_speex='#undef CONFIG_SPEEX'
6053 nocodecmodules="speex $nocodecmodules"
6055 echores "$_speex"
6057 echocheck "OggTheora support"
6058 if test "$_theora" = auto ; then
6059 _theora=no
6060 cat > $TMPC << EOF
6061 #include <theora/theora.h>
6062 #include <string.h>
6063 int main(void) {
6064 /* Theora is in flux, make sure that all interface routines and datatypes
6065 * exist and work the way we expect it, so we don't break MPlayer. */
6066 ogg_packet op;
6067 theora_comment tc;
6068 theora_info inf;
6069 theora_state st;
6070 yuv_buffer yuv;
6071 int r;
6072 double t;
6074 theora_info_init(&inf);
6075 theora_comment_init(&tc);
6077 return 0;
6079 /* we don't want to execute this kind of nonsense; just for making sure
6080 * that compilation works... */
6081 memset(&op, 0, sizeof(op));
6082 r = theora_decode_header(&inf, &tc, &op);
6083 r = theora_decode_init(&st, &inf);
6084 t = theora_granule_time(&st, op.granulepos);
6085 r = theora_decode_packetin(&st, &op);
6086 r = theora_decode_YUVout(&st, &yuv);
6087 theora_clear(&st);
6089 return 0;
6092 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6093 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6094 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6095 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6096 if test _theora = no; then
6097 _ld_theora="-ltheora -logg"
6098 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6100 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6101 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6102 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6103 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6104 extra_ldflags="$extra_ldflags $_ld_theora" &&
6105 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6106 if test _theora = no; then
6107 _ld_theora="-ltheora -logg"
6108 cc_check tremor/bitwise.c $_ld_theora &&
6109 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6113 if test "$_theora" = yes ; then
6114 def_theora='#define CONFIG_OGGTHEORA 1'
6115 codecmodules="libtheora $codecmodules"
6116 # when --enable-theora is forced, we'd better provide a probably sane
6117 # $_ld_theora than nothing
6118 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6119 else
6120 def_theora='#undef CONFIG_OGGTHEORA'
6121 nocodecmodules="libtheora $nocodecmodules"
6123 echores "$_theora"
6125 echocheck "mp3lib support"
6126 if test "$_mp3lib" = auto ; then
6127 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6129 if test "$_mp3lib" = yes ; then
6130 def_mp3lib='#define CONFIG_MP3LIB 1'
6131 codecmodules="mp3lib(internal) $codecmodules"
6132 else
6133 def_mp3lib='#undef CONFIG_MP3LIB'
6134 nocodecmodules="mp3lib(internal) $nocodecmodules"
6136 echores "$_mp3lib"
6138 # Any version of libmpg123 shall be fine.
6139 echocheck "mpg123 support"
6140 def_mpg123='#undef CONFIG_MPG123'
6141 if test "$_mpg123" = auto; then
6142 _mpg123=no
6143 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
6145 if test "$_mpg123" = yes ; then
6146 def_mpg123='#define CONFIG_MPG123 1'
6147 codecmodules="mpg123 $codecmodules"
6148 else
6149 nocodecmodules="mpg123 $nocodecmodules"
6151 echores "$_mpg123"
6153 echocheck "liba52 support"
6154 def_liba52='#undef CONFIG_LIBA52'
6155 if test "$_liba52" = auto ; then
6156 _liba52=no
6157 cat > $TMPC << EOF
6158 #include <inttypes.h>
6159 #include <a52dec/a52.h>
6160 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6162 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
6164 if test "$_liba52" = yes ; then
6165 def_liba52='#define CONFIG_LIBA52 1'
6166 codecmodules="liba52 $codecmodules"
6167 else
6168 nocodecmodules="liba52 $nocodecmodules"
6170 echores "$_liba52"
6172 echocheck "internal libmpeg2 support"
6173 if test "$_libmpeg2" = auto ; then
6174 _libmpeg2=yes
6175 if alpha && test cc_vendor=gnu; then
6176 case $cc_version in
6177 2*|3.0*|3.1*) # cannot compile MVI instructions
6178 _libmpeg2=no
6179 res_comment="broken gcc"
6181 esac
6184 if test "$_libmpeg2" = yes ; then
6185 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6186 codecmodules="libmpeg2(internal) $codecmodules"
6187 else
6188 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6189 nocodecmodules="libmpeg2(internal) $nocodecmodules"
6191 echores "$_libmpeg2"
6193 echocheck "libdca support"
6194 if test "$_libdca" = auto ; then
6195 _libdca=no
6196 for _ld_dca in -ldca -ldts ; do
6197 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
6198 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
6199 done
6201 if test "$_libdca" = yes ; then
6202 def_libdca='#define CONFIG_LIBDCA 1'
6203 codecmodules="libdca $codecmodules"
6204 else
6205 def_libdca='#undef CONFIG_LIBDCA'
6206 nocodecmodules="libdca $nocodecmodules"
6208 echores "$_libdca"
6210 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6211 if test "$_musepack" = auto ; then
6212 _musepack=no
6213 cat > $TMPC << EOF
6214 #include <stddef.h>
6215 #include <mpcdec/mpcdec.h>
6216 int main(void) {
6217 mpc_streaminfo info;
6218 mpc_decoder decoder;
6219 mpc_decoder_set_streaminfo(&decoder, &info);
6220 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6221 return 0;
6224 cc_check -lmpcdec $_ld_lm && _musepack=yes
6226 if test "$_musepack" = yes ; then
6227 def_musepack='#define CONFIG_MUSEPACK 1'
6228 extra_ldflags="$extra_ldflags -lmpcdec"
6229 codecmodules="musepack $codecmodules"
6230 else
6231 def_musepack='#undef CONFIG_MUSEPACK'
6232 nocodecmodules="musepack $nocodecmodules"
6234 echores "$_musepack"
6237 echocheck "FAAC support"
6238 if test "$_faac" = auto ; then
6239 cat > $TMPC <<EOF
6240 #include <inttypes.h>
6241 #include <faac.h>
6242 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6244 _faac=no
6245 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6246 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6247 done
6249 if test "$_faac" = yes ; then
6250 def_faac="#define CONFIG_FAAC 1"
6251 codecmodules="faac $codecmodules"
6252 else
6253 def_faac="#undef CONFIG_FAAC"
6254 nocodecmodules="faac $nocodecmodules"
6256 echores "$_faac"
6259 echocheck "FAAD2 support"
6260 if test "$_faad_internal" = auto ; then
6261 if x86_32 && test cc_vendor=gnu; then
6262 case $cc_version in
6263 3.1*|3.2) # ICE/insn with these versions
6264 _faad_internal=no
6265 res_comment="broken gcc"
6268 _faad=yes
6269 _faad_internal=yes
6271 esac
6272 else
6273 _faad=yes
6274 _faad_internal=yes
6277 if test "$_faad" = auto ; then
6278 cat > $TMPC << EOF
6279 #include <faad.h>
6280 #ifndef FAAD_MIN_STREAMSIZE
6281 #error Too old version
6282 #endif
6283 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6284 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6286 cc_check -lfaad $_ld_lm && _faad=yes
6289 def_faad='#undef CONFIG_FAAD'
6290 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6291 if test "$_faad_internal" = yes ; then
6292 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6293 res_comment="internal floating-point"
6294 if test "$_faad_fixed" = yes ; then
6295 # The FIXED_POINT implementation of FAAD2 improves performance
6296 # on some platforms, especially for SBR files.
6297 cflags_faad_fixed="-DFIXED_POINT"
6298 res_comment="internal fixed-point"
6300 elif test "$_faad" = yes ; then
6301 extra_ldflags="$extra_ldflags -lfaad"
6304 if test "$_faad" = yes ; then
6305 def_faad='#define CONFIG_FAAD 1'
6306 if test "$_faad_internal" = yes ; then
6307 codecmodules="faad2(internal) $codecmodules"
6308 else
6309 codecmodules="faad2 $codecmodules"
6311 else
6312 _faad=no
6313 nocodecmodules="faad2 $nocodecmodules"
6315 echores "$_faad"
6318 echocheck "LADSPA plugin support"
6319 if test "$_ladspa" = auto ; then
6320 _ladspa=no
6321 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
6323 if test "$_ladspa" = yes; then
6324 def_ladspa="#define CONFIG_LADSPA 1"
6325 else
6326 def_ladspa="#undef CONFIG_LADSPA"
6328 echores "$_ladspa"
6331 echocheck "libbs2b audio filter support"
6332 if test "$_libbs2b" = auto ; then
6333 cat > $TMPC <<EOF
6334 #include <bs2b.h>
6335 #if BS2B_VERSION_MAJOR < 3
6336 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6337 #endif
6338 int main(void) {
6339 t_bs2bdp filter;
6340 filter=bs2b_open();
6341 bs2b_close(filter);
6342 return 0;
6345 _libbs2b=no
6346 if $_pkg_config --exists libbs2b ; then
6347 _inc_tmp=$($_pkg_config --cflags libbs2b)
6348 _ld_tmp=$($_pkg_config --libs libbs2b)
6349 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6350 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6351 else
6352 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6353 -I/usr/local/include/bs2b ; do
6354 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6355 extra_ldflags="$extra_ldflags -lbs2b"
6356 extra_cflags="$extra_cflags $_inc_tmp"
6357 _libbs2b=yes
6358 break
6360 done
6363 def_libbs2b="#undef CONFIG_LIBBS2B"
6364 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6365 echores "$_libbs2b"
6368 if test -z "$_codecsdir" ; then
6369 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6370 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6371 if test -d "$dir" ; then
6372 _codecsdir="$dir"
6373 break;
6375 done
6377 # Fall back on default directory.
6378 if test -z "$_codecsdir" ; then
6379 _codecsdir="$_libdir/codecs"
6380 mingw32 || os2 && _codecsdir="codecs"
6384 echocheck "Win32 codecs"
6385 if test "$_win32dll" = auto ; then
6386 _win32dll=no
6387 if x86_32 && ! qnx; then
6388 _win32dll=yes
6391 if test "$_win32dll" = yes ; then
6392 def_win32dll='#define CONFIG_WIN32DLL 1'
6393 if ! win32 ; then
6394 def_win32_loader='#define WIN32_LOADER 1'
6395 _win32_emulation=yes
6396 else
6397 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6398 res_comment="using native windows"
6400 codecmodules="win32 $codecmodules"
6401 else
6402 def_win32dll='#undef CONFIG_WIN32DLL'
6403 def_win32_loader='#undef WIN32_LOADER'
6404 nocodecmodules="win32 $nocodecmodules"
6406 echores "$_win32dll"
6409 echocheck "XAnim codecs"
6410 if test "$_xanim" = auto ; then
6411 _xanim=no
6412 res_comment="dynamic loader support needed"
6413 if test "$_dl" = yes ; then
6414 _xanim=yes
6417 if test "$_xanim" = yes ; then
6418 def_xanim='#define CONFIG_XANIM 1'
6419 codecmodules="xanim $codecmodules"
6420 else
6421 def_xanim='#undef CONFIG_XANIM'
6422 nocodecmodules="xanim $nocodecmodules"
6424 echores "$_xanim"
6427 echocheck "RealPlayer codecs"
6428 if test "$_real" = auto ; then
6429 _real=no
6430 res_comment="dynamic loader support needed"
6431 if test "$_dl" = yes || test "$_win32dll" = yes &&
6432 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
6433 _real=yes
6436 if test "$_real" = yes ; then
6437 def_real='#define CONFIG_REALCODECS 1'
6438 codecmodules="real $codecmodules"
6439 else
6440 def_real='#undef CONFIG_REALCODECS'
6441 nocodecmodules="real $nocodecmodules"
6443 echores "$_real"
6446 echocheck "QuickTime codecs"
6447 _qtx_emulation=no
6448 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6449 if test "$_qtx" = auto ; then
6450 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6452 if test "$_qtx" = yes ; then
6453 def_qtx='#define CONFIG_QTX_CODECS 1'
6454 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6455 codecmodules="qtx $codecmodules"
6456 darwin || win32 || _qtx_emulation=yes
6457 else
6458 def_qtx='#undef CONFIG_QTX_CODECS'
6459 nocodecmodules="qtx $nocodecmodules"
6461 echores "$_qtx"
6463 echocheck "Nemesi Streaming Media libraries"
6464 if test "$_nemesi" = auto && test "$networking" = yes ; then
6465 _nemesi=no
6466 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6467 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6468 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6469 _nemesi=yes
6472 if test "$_nemesi" = yes; then
6473 _native_rtsp=no
6474 def_nemesi='#define CONFIG_LIBNEMESI 1'
6475 inputmodules="nemesi $inputmodules"
6476 else
6477 _native_rtsp="$networking"
6478 _nemesi=no
6479 def_nemesi='#undef CONFIG_LIBNEMESI'
6480 noinputmodules="nemesi $noinputmodules"
6482 echores "$_nemesi"
6484 echocheck "LIVE555 Streaming Media libraries"
6485 if test "$_live" = auto && test "$networking" = yes ; then
6486 cat > $TMPCPP << EOF
6487 #include <liveMedia.hh>
6488 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6489 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6490 #endif
6491 int main(void) { return 0; }
6494 _live=no
6495 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
6496 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6497 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6498 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6499 $_livelibdir/groupsock/libgroupsock.a \
6500 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6501 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6502 $extra_ldflags -lstdc++" \
6503 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6504 -I$_livelibdir/UsageEnvironment/include \
6505 -I$_livelibdir/BasicUsageEnvironment/include \
6506 -I$_livelibdir/groupsock/include" && \
6507 _live=yes && break
6508 done
6509 if test "$_live" != yes ; then
6510 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6511 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6512 _live_dist=yes
6516 if test "$_live" = yes && test "$networking" = yes; then
6517 test $_livelibdir && res_comment="using $_livelibdir"
6518 def_live='#define CONFIG_LIVE555 1'
6519 inputmodules="live555 $inputmodules"
6520 elif test "$_live_dist" = yes && test "$networking" = yes; then
6521 res_comment="using distribution version"
6522 _live="yes"
6523 def_live='#define CONFIG_LIVE555 1'
6524 extra_ldflags="$extra_ldflags $ld_tmp"
6525 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6526 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6527 inputmodules="live555 $inputmodules"
6528 else
6529 _live=no
6530 def_live='#undef CONFIG_LIVE555'
6531 noinputmodules="live555 $noinputmodules"
6533 echores "$_live"
6537 all_ffmpeg_libs="libavutil libavcodec libavformat libswscale libpostproc"
6538 echocheck "FFmpeg ($all_ffmpeg_libs)"
6539 if test "$ffmpeg" = auto ; then
6540 ffmpeg=no
6541 if $_pkg_config --exists $all_ffmpeg_libs ; then
6542 inc_ffmpeg=$($_pkg_config --cflags $all_ffmpeg_libs)
6543 _ld_tmp=$($_pkg_config --libs $all_ffmpeg_libs)
6544 extra_ldflags="$extra_ldflags $_ld_tmp"
6545 extra_cflags="$extra_cflags $inc_ffmpeg"
6546 ffmpeg=yes
6547 elif header_check libavcore/avutil.h -lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
6548 extra_ldflags="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil -lavcore"
6549 ffmpeg=yes
6553 if test "$ffmpeg" = yes; then
6554 def_ffmpeg='#define CONFIG_FFMPEG 1'
6555 codecmodules="ffmpeg $codecmodules"
6556 else
6557 def_ffmpeg='#undef CONFIG_FFMPEG'
6558 nocodecmodules="ffmpeg $nocodecmodules"
6560 echores "$ffmpeg"
6562 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
6563 if ! test -z "$_ffmpeg_source" ; then
6564 test "$ffmpeg" = yes && def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
6569 echocheck "libdv-0.9.5+"
6570 if test "$_libdv" = auto ; then
6571 _libdv=no
6572 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
6574 if test "$_libdv" = yes ; then
6575 def_libdv='#define CONFIG_LIBDV095 1'
6576 extra_ldflags="$extra_ldflags -ldv"
6577 codecmodules="libdv $codecmodules"
6578 else
6579 def_libdv='#undef CONFIG_LIBDV095'
6580 nocodecmodules="libdv $nocodecmodules"
6582 echores "$_libdv"
6585 echocheck "Xvid"
6586 if test "$_xvid" = auto ; then
6587 _xvid=no
6588 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6589 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6590 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6591 done
6594 if test "$_xvid" = yes ; then
6595 def_xvid='#define CONFIG_XVID4 1'
6596 codecmodules="xvid $codecmodules"
6597 else
6598 def_xvid='#undef CONFIG_XVID4'
6599 nocodecmodules="xvid $nocodecmodules"
6601 echores "$_xvid"
6603 echocheck "x264"
6604 if test "$_x264" = auto ; then
6605 cat > $TMPC << EOF
6606 #include <inttypes.h>
6607 #include <x264.h>
6608 #if X264_BUILD < 98
6609 #error We do not support old versions of x264. Get the latest from git.
6610 #endif
6611 int main(void) { x264_encoder_open((void*)0); return 0; }
6613 _x264=no
6614 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
6615 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
6616 done
6619 if test "$_x264" = yes ; then
6620 def_x264='#define CONFIG_X264 1'
6621 codecmodules="x264 $codecmodules"
6622 else
6623 def_x264='#undef CONFIG_X264'
6624 nocodecmodules="x264 $nocodecmodules"
6626 echores "$_x264"
6628 echocheck "libnut"
6629 if test "$_libnut" = auto ; then
6630 cat > $TMPC << EOF
6631 #include <libnut.h>
6632 nut_context_tt * nut;
6633 int main(void) { nut_error(0); return 0; }
6635 _libnut=no
6636 cc_check -lnut && _libnut=yes
6639 if test "$_libnut" = yes ; then
6640 def_libnut='#define CONFIG_LIBNUT 1'
6641 extra_ldflags="$extra_ldflags -lnut"
6642 else
6643 def_libnut='#undef CONFIG_LIBNUT'
6645 echores "$_libnut"
6647 # These VO checks must be done after the FFmpeg one
6648 echocheck "/dev/mga_vid"
6649 if test "$_mga" = auto ; then
6650 _mga=no
6651 test -c /dev/mga_vid && _mga=yes
6653 if test "$_mga" = yes ; then
6654 def_mga='#define CONFIG_MGA 1'
6655 vomodules="mga $vomodules"
6656 else
6657 def_mga='#undef CONFIG_MGA'
6658 novomodules="mga $novomodules"
6660 echores "$_mga"
6663 echocheck "xmga"
6664 if test "$_xmga" = auto ; then
6665 _xmga=no
6666 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6668 if test "$_xmga" = yes ; then
6669 def_xmga='#define CONFIG_XMGA 1'
6670 vomodules="xmga $vomodules"
6671 else
6672 def_xmga='#undef CONFIG_XMGA'
6673 novomodules="xmga $novomodules"
6675 echores "$_xmga"
6677 echocheck "zr"
6678 if test "$_zr" = auto ; then
6679 #36067's seem to identify themselves as 36057PQC's, so the line
6680 #below should work for 36067's and 36057's.
6681 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
6682 _zr=yes
6683 else
6684 _zr=no
6687 if test "$_zr" = yes ; then
6688 if test "$ffmpeg_internals" = yes ; then
6689 def_zr='#define CONFIG_ZR 1'
6690 vomodules="zr zr2 $vomodules"
6691 else
6692 res_comment="FFmpeg internal headers are required by zr, sorry"
6693 novomodules="zr $novomodules"
6694 def_zr='#undef CONFIG_ZR'
6696 else
6697 def_zr='#undef CONFIG_ZR'
6698 novomodules="zr zr2 $novomodules"
6700 echores "$_zr"
6702 # mencoder requires (optional) those libs: libmp3lame
6703 if test "$_mencoder" != no ; then
6705 echocheck "libmp3lame"
6706 def_mp3lame='#undef CONFIG_MP3LAME'
6707 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
6708 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
6709 if test "$_mp3lame" = auto ; then
6710 _mp3lame=no
6711 cat > $TMPC <<EOF
6712 #include <lame/lame.h>
6713 int main(void) { lame_version_t lv; lame_init();
6714 get_lame_version_numerical(&lv);
6715 return 0; }
6717 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
6719 if test "$_mp3lame" = yes ; then
6720 def_mp3lame="#define CONFIG_MP3LAME 1"
6721 _ld_mp3lame=-lmp3lame
6722 libs_mencoder="$libs_mencoder $_ld_mp3lame"
6723 statement_check lame/lame.h 'lame_set_preset(NULL, STANDARD_FAST)' $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
6724 statement_check lame/lame.h 'lame_set_preset(NULL, MEDIUM_FAST)' $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
6726 echores "$_mp3lame"
6728 fi # test "$_mencoder" != no
6730 echocheck "mencoder"
6731 if test "$_mencoder" = yes ; then
6732 def_muxers='#define CONFIG_MUXERS 1'
6733 else
6734 def_muxers='#define CONFIG_MUXERS 0'
6736 echores "$_mencoder"
6739 echocheck "UnRAR executable"
6740 if test "$_unrar_exec" = auto ; then
6741 _unrar_exec="yes"
6742 mingw32 && _unrar_exec="no"
6744 if test "$_unrar_exec" = yes ; then
6745 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6746 else
6747 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
6749 echores "$_unrar_exec"
6751 echocheck "TV interface"
6752 if test "$_tv" = yes ; then
6753 def_tv='#define CONFIG_TV 1'
6754 inputmodules="tv $inputmodules"
6755 else
6756 noinputmodules="tv $noinputmodules"
6757 def_tv='#undef CONFIG_TV'
6759 echores "$_tv"
6762 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6763 echocheck "*BSD BT848 bt8xx header"
6764 _ioctl_bt848_h=no
6765 for file in "machine/ioctl_bt848.h" \
6766 "dev/bktr/ioctl_bt848.h" \
6767 "dev/video/bktr/ioctl_bt848.h" \
6768 "dev/ic/bt8xx.h" ; do
6769 cat > $TMPC <<EOF
6770 #include <sys/types.h>
6771 #include <sys/ioctl.h>
6772 #include <$file>
6773 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6775 if cc_check ; then
6776 _ioctl_bt848_h=yes
6777 _ioctl_bt848_h_name="$file"
6778 break;
6780 done
6781 if test "$_ioctl_bt848_h" = yes ; then
6782 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6783 res_comment="using $_ioctl_bt848_h_name"
6784 else
6785 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6787 echores "$_ioctl_bt848_h"
6789 echocheck "*BSD ioctl_meteor.h"
6790 _ioctl_meteor_h=no
6791 for file in "machine/ioctl_meteor.h" \
6792 "dev/bktr/ioctl_meteor.h" \
6793 "dev/video/bktr/ioctl_meteor.h" ; do
6794 cat > $TMPC <<EOF
6795 #include <sys/types.h>
6796 #include <$file>
6797 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
6799 if cc_check ; then
6800 _ioctl_meteor_h=yes
6801 _ioctl_meteor_h_name="$file"
6802 break;
6804 done
6805 if test "$_ioctl_meteor_h" = yes ; then
6806 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
6807 res_comment="using $_ioctl_meteor_h_name"
6808 else
6809 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6811 echores "$_ioctl_meteor_h"
6813 echocheck "*BSD BrookTree 848 TV interface"
6814 if test "$_tv_bsdbt848" = auto ; then
6815 _tv_bsdbt848=no
6816 if test "$_tv" = yes ; then
6817 cat > $TMPC <<EOF
6818 #include <sys/types.h>
6819 $def_ioctl_meteor_h_name
6820 $def_ioctl_bt848_h_name
6821 #ifdef IOCTL_METEOR_H_NAME
6822 #include IOCTL_METEOR_H_NAME
6823 #endif
6824 #ifdef IOCTL_BT848_H_NAME
6825 #include IOCTL_BT848_H_NAME
6826 #endif
6827 int main(void) {
6828 ioctl(0, METEORSINPUT, 0);
6829 ioctl(0, TVTUNER_GETFREQ, 0);
6830 return 0;
6833 cc_check && _tv_bsdbt848=yes
6836 if test "$_tv_bsdbt848" = yes ; then
6837 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
6838 inputmodules="tv-bsdbt848 $inputmodules"
6839 else
6840 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
6841 noinputmodules="tv-bsdbt848 $noinputmodules"
6843 echores "$_tv_bsdbt848"
6844 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6847 echocheck "DirectShow TV interface"
6848 if test "$_tv_dshow" = auto ; then
6849 _tv_dshow=no
6850 if test "$_tv" = yes && win32 ; then
6851 cat > $TMPC <<EOF
6852 #include <ole2.h>
6853 int main(void) {
6854 void* p;
6855 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
6856 return 0;
6859 cc_check -lole32 -luuid && _tv_dshow=yes
6862 if test "$_tv_dshow" = yes ; then
6863 inputmodules="tv-dshow $inputmodules"
6864 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
6865 extra_ldflags="$extra_ldflags -lole32 -luuid"
6866 else
6867 noinputmodules="tv-dshow $noinputmodules"
6868 def_tv_dshow='#undef CONFIG_TV_DSHOW'
6870 echores "$_tv_dshow"
6873 echocheck "Video 4 Linux TV interface"
6874 if test "$_tv_v4l1" = auto ; then
6875 _tv_v4l1=no
6876 if test "$_tv" = yes && linux ; then
6877 header_check linux/videodev.h && _tv_v4l1=yes
6880 if test "$_tv_v4l1" = yes ; then
6881 _audio_input=yes
6882 _tv_v4l=yes
6883 def_tv_v4l='#define CONFIG_TV_V4L 1'
6884 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6885 inputmodules="tv-v4l $inputmodules"
6886 else
6887 noinputmodules="tv-v4l1 $noinputmodules"
6888 def_tv_v4l='#undef CONFIG_TV_V4L'
6890 echores "$_tv_v4l1"
6893 echocheck "Video 4 Linux 2 TV interface"
6894 if test "$_tv_v4l2" = auto ; then
6895 _tv_v4l2=no
6896 if test "$_tv" = yes && linux ; then
6897 header_check linux/videodev2.h && _tv_v4l2=yes
6900 if test "$_tv_v4l2" = yes ; then
6901 _audio_input=yes
6902 _tv_v4l=yes
6903 def_tv_v4l='#define CONFIG_TV_V4L 1'
6904 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6905 inputmodules="tv-v4l2 $inputmodules"
6906 else
6907 noinputmodules="tv-v4l2 $noinputmodules"
6908 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6910 echores "$_tv_v4l2"
6913 echocheck "Radio interface"
6914 if test "$_radio" = yes ; then
6915 def_radio='#define CONFIG_RADIO 1'
6916 inputmodules="radio $inputmodules"
6917 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6918 _radio_capture=no
6920 if test "$_radio_capture" = yes ; then
6921 _audio_input=yes
6922 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6923 else
6924 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6926 else
6927 noinputmodules="radio $noinputmodules"
6928 def_radio='#undef CONFIG_RADIO'
6929 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6930 _radio_capture=no
6932 echores "$_radio"
6933 echocheck "Capture for Radio interface"
6934 echores "$_radio_capture"
6936 echocheck "Video 4 Linux 2 Radio interface"
6937 if test "$_radio_v4l2" = auto ; then
6938 _radio_v4l2=no
6939 if test "$_radio" = yes && linux ; then
6940 header_check linux/videodev2.h && _radio_v4l2=yes
6943 if test "$_radio_v4l2" = yes ; then
6944 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6945 else
6946 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6948 echores "$_radio_v4l2"
6950 echocheck "Video 4 Linux Radio interface"
6951 if test "$_radio_v4l" = auto ; then
6952 _radio_v4l=no
6953 if test "$_radio" = yes && linux ; then
6954 header_check linux/videodev.h && _radio_v4l=yes
6957 if test "$_radio_v4l" = yes ; then
6958 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6959 else
6960 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6962 echores "$_radio_v4l"
6964 if freebsd || netbsd || openbsd || dragonfly || bsdos \
6965 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6966 echocheck "*BSD BrookTree 848 Radio interface"
6967 _radio_bsdbt848=no
6968 cat > $TMPC <<EOF
6969 #include <sys/types.h>
6970 $def_ioctl_bt848_h_name
6971 #ifdef IOCTL_BT848_H_NAME
6972 #include IOCTL_BT848_H_NAME
6973 #endif
6974 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6976 cc_check && _radio_bsdbt848=yes
6977 echores "$_radio_bsdbt848"
6978 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6980 if test "$_radio_bsdbt848" = yes ; then
6981 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6982 else
6983 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6986 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
6987 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6988 die "Radio driver requires BSD BT848, V4L or V4L2!"
6991 echocheck "Video 4 Linux 2 MPEG PVR interface"
6992 if test "$_pvr" = auto ; then
6993 _pvr=no
6994 if test "$_tv_v4l2" = yes && linux ; then
6995 cat > $TMPC <<EOF
6996 #include <linux/videodev2.h>
6997 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6999 cc_check && _pvr=yes
7002 if test "$_pvr" = yes ; then
7003 def_pvr='#define CONFIG_PVR 1'
7004 inputmodules="pvr $inputmodules"
7005 else
7006 noinputmodules="pvr $noinputmodules"
7007 def_pvr='#undef CONFIG_PVR'
7009 echores "$_pvr"
7012 echocheck "ftp"
7013 if test "$_ftp" = "auto" ; then
7014 test "$networking" = "yes" && ! beos && _ftp=yes
7016 if test "$_ftp" = yes ; then
7017 def_ftp='#define CONFIG_FTP 1'
7018 inputmodules="ftp $inputmodules"
7019 else
7020 noinputmodules="ftp $noinputmodules"
7021 def_ftp='#undef CONFIG_FTP'
7023 echores "$_ftp"
7025 echocheck "vstream client"
7026 if test "$_vstream" = auto ; then
7027 _vstream=no
7028 cat > $TMPC <<EOF
7029 #include <vstream-client.h>
7030 void vstream_error(const char *format, ... ) {}
7031 int main(void) { vstream_start(); return 0; }
7033 cc_check -lvstream-client && _vstream=yes
7035 if test "$_vstream" = yes ; then
7036 def_vstream='#define CONFIG_VSTREAM 1'
7037 inputmodules="vstream $inputmodules"
7038 extra_ldflags="$extra_ldflags -lvstream-client"
7039 else
7040 noinputmodules="vstream $noinputmodules"
7041 def_vstream='#undef CONFIG_VSTREAM'
7043 echores "$_vstream"
7046 echocheck "OSD menu"
7047 if test "$_menu" = yes ; then
7048 def_menu='#define CONFIG_MENU 1'
7049 test $_dvbin = "yes" && _menu_dvbin=yes
7050 else
7051 def_menu='#undef CONFIG_MENU'
7052 _menu_dvbin=no
7054 echores "$_menu"
7057 echocheck "Subtitles sorting"
7058 if test "$_sortsub" = yes ; then
7059 def_sortsub='#define CONFIG_SORTSUB 1'
7060 else
7061 def_sortsub='#undef CONFIG_SORTSUB'
7063 echores "$_sortsub"
7066 echocheck "XMMS inputplugin support"
7067 if test "$_xmms" = yes ; then
7068 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7069 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7070 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7071 else
7072 _xmmsplugindir=/usr/lib/xmms/Input
7073 _xmmslibdir=/usr/lib
7076 def_xmms='#define CONFIG_XMMS 1'
7077 if darwin ; then
7078 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7079 else
7080 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7082 else
7083 def_xmms='#undef CONFIG_XMMS'
7085 echores "$_xmms"
7087 if test "$_charset" != "noconv" ; then
7088 def_charset="#define MSG_CHARSET \"$_charset\""
7089 else
7090 def_charset="#undef MSG_CHARSET"
7091 _charset="UTF-8"
7094 #############################################################################
7096 echocheck "automatic gdb attach"
7097 if test "$_crash_debug" = yes ; then
7098 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7099 else
7100 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7101 _crash_debug=no
7103 echores "$_crash_debug"
7105 echocheck "compiler support for noexecstack"
7106 if cflag_check -Wl,-z,noexecstack ; then
7107 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7108 echores "yes"
7109 else
7110 echores "no"
7113 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
7114 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
7115 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
7116 echores "yes"
7117 else
7118 echores "no"
7122 # Dynamic linking flags
7123 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7124 _ld_dl_dynamic=''
7125 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7126 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7127 _ld_dl_dynamic='-rdynamic'
7130 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7131 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7132 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7134 def_debug='#undef MP_DEBUG'
7135 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7138 echocheck "joystick"
7139 def_joystick='#undef CONFIG_JOYSTICK'
7140 if test "$_joystick" = yes ; then
7141 if linux ; then
7142 # TODO add some check
7143 def_joystick='#define CONFIG_JOYSTICK 1'
7144 else
7145 _joystick="no"
7146 res_comment="unsupported under $system_name"
7149 echores "$_joystick"
7151 echocheck "lirc"
7152 if test "$_lirc" = auto ; then
7153 _lirc=no
7154 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
7156 if test "$_lirc" = yes ; then
7157 def_lirc='#define CONFIG_LIRC 1'
7158 libs_mplayer="$libs_mplayer -llirc_client"
7159 else
7160 def_lirc='#undef CONFIG_LIRC'
7162 echores "$_lirc"
7164 echocheck "lircc"
7165 if test "$_lircc" = auto ; then
7166 _lircc=no
7167 header_check lirc/lircc.h -llircc && _lircc=yes
7169 if test "$_lircc" = yes ; then
7170 def_lircc='#define CONFIG_LIRCC 1'
7171 libs_mplayer="$libs_mplayer -llircc"
7172 else
7173 def_lircc='#undef CONFIG_LIRCC'
7175 echores "$_lircc"
7177 if arm; then
7178 # Detect maemo development platform libraries availability (http://www.maemo.org),
7179 # they are used when run on Nokia 770|8x0
7180 echocheck "maemo (Nokia 770|8x0)"
7181 if test "$_maemo" = auto ; then
7182 _maemo=no
7183 statement_check libosso.h 'osso_initialize('', '', 0, NULL)' $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7185 if test "$_maemo" = yes ; then
7186 def_maemo='#define CONFIG_MAEMO 1'
7187 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7188 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7189 else
7190 def_maemo='#undef CONFIG_MAEMO'
7192 echores "$_maemo"
7195 #############################################################################
7197 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7198 # the OMF format needs to come after the 'extern symbol prefix' check, which
7199 # uses nm.
7200 if os2 ; then
7201 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7204 # linker paths should be the same for mencoder and mplayer
7205 _ld_tmp=""
7206 for I in $libs_mplayer ; do
7207 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7208 if test -z "$_tmp" ; then
7209 extra_ldflags="$extra_ldflags $I"
7210 else
7211 _ld_tmp="$_ld_tmp $I"
7213 done
7214 libs_mplayer=$_ld_tmp
7217 #############################################################################
7218 # 64 bit file offsets?
7219 if test "$_largefiles" = yes || freebsd ; then
7220 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7221 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7222 # dvdread support requires this (for off64_t)
7223 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7227 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
7229 # This must be the last test to be performed. Any other tests following it
7230 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7231 # against libdvdread (to permit MPlayer to use its own copy of the library).
7232 # So any compilation using the flags added here but not linking against
7233 # libdvdread can fail.
7234 echocheck "DVD support (libdvdnav)"
7235 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7236 _dvdnav=no
7238 dvdnav_internal=no
7239 if test "$_dvdnav" = auto ; then
7240 if test "$_dvdread_internal" = yes ; then
7241 _dvdnav=yes
7242 dvdnav_internal=yes
7243 res_comment="internal"
7244 else
7245 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7248 if test "$_dvdnav" = auto ; then
7249 _dvdnav=no
7250 _dvdnavdir=$($_dvdnavconfig --cflags)
7251 _dvdnavlibs=$($_dvdnavconfig --libs)
7252 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7254 if test "$_dvdnav" = yes ; then
7255 _largefiles=yes
7256 def_dvdnav='#define CONFIG_DVDNAV 1'
7257 if test "$dvdnav_internal" = yes ; then
7258 cflags_libdvdnav="-Ilibdvdnav"
7259 inputmodules="dvdnav(internal) $inputmodules"
7260 else
7261 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7262 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7263 inputmodules="dvdnav $inputmodules"
7265 else
7266 def_dvdnav='#undef CONFIG_DVDNAV'
7267 noinputmodules="dvdnav $noinputmodules"
7269 echores "$_dvdnav"
7271 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7272 # Read dvdnav comment above.
7274 mak_enable () {
7275 list=$(echo $1 | tr '[a-z]' '[A-Z]')
7276 item=$(echo $2 | tr '[a-z]' '[A-Z]')
7277 nprefix=$3;
7278 for part in $list; do
7279 if $(echo $item | grep -q -E "(^| )$part($| )"); then
7280 echo "${nprefix}_$part = yes"
7282 done
7285 #############################################################################
7286 echo "Creating config.mak"
7287 cat > config.mak << EOF
7288 # -------- Generated by configure -----------
7290 # Ensure that locale settings do not interfere with shell commands.
7291 export LC_ALL = C
7293 CONFIGURATION = $configuration
7295 CHARSET = $_charset
7296 DOC_LANGS = $language_doc
7297 DOC_LANG_ALL = $doc_lang_all
7298 MAN_LANGS = $language_man
7299 MAN_LANG_ALL = $man_lang_all
7300 MSG_LANGS = $language_msg
7301 MSG_LANG_ALL = $msg_lang_all
7303 prefix = \$(DESTDIR)$_prefix
7304 BINDIR = \$(DESTDIR)$_bindir
7305 DATADIR = \$(DESTDIR)$_datadir
7306 LIBDIR = \$(DESTDIR)$_libdir
7307 MANDIR = \$(DESTDIR)$_mandir
7308 CONFDIR = \$(DESTDIR)$_confdir
7309 LOCALEDIR = \$(DESTDIR)$_localedir
7311 AR = $_ar
7312 AS = $_cc
7313 CC = $_cc
7314 CXX = $_cc
7315 HOST_CC = $_host_cc
7316 INSTALL = $_install
7317 INSTALLSTRIP = $_install_strip
7318 WINDRES = $_windres
7320 CFLAGS = $WARNFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
7321 CXXFLAGS = $WARNFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
7322 DEPFLAGS = $DEPFLAGS
7324 CFLAGS_DHAHELPER = $cflags_dhahelper
7325 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7326 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7327 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7328 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7329 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7330 CFLAGS_STACKREALIGN = $cflags_stackrealign
7331 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7332 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7334 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
7335 EXTRALIBS_MPLAYER = $libs_mplayer
7336 EXTRALIBS_MENCODER = $libs_mencoder
7338 GETCH = $_getch
7339 TIMER = $_timer
7341 EXESUF = $_exesuf
7342 EXESUFS_ALL = .exe
7344 ARCH = $arch
7345 $(mak_enable "$arch_all" "$arch" ARCH)
7346 $(mak_enable "$subarch_all" "$subarch" ARCH)
7347 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
7349 MENCODER = $_mencoder
7350 MPLAYER = $_mplayer
7352 NEED_GETTIMEOFDAY = $_need_gettimeofday
7353 NEED_GLOB = $_need_glob
7354 NEED_MMAP = $_need_mmap
7355 NEED_SETENV = $_need_setenv
7356 NEED_SHMEM = $_need_shmem
7357 NEED_STRSEP = $_need_strsep
7358 NEED_SWAB = $_need_swab
7359 NEED_VSSCANF = $_need_vsscanf
7361 # features
7362 3DFX = $_3dfx
7363 AA = $_aa
7364 ALSA1X = $_alsa1x
7365 ALSA9 = $_alsa9
7366 ALSA5 = $_alsa5
7367 APPLE_IR = $_apple_ir
7368 APPLE_REMOTE = $_apple_remote
7369 ARTS = $_arts
7370 AUDIO_INPUT = $_audio_input
7371 BITMAP_FONT = $_bitmap_font
7372 BL = $_bl
7373 CACA = $_caca
7374 CDDA = $_cdda
7375 CDDB = $_cddb
7376 COREAUDIO = $_coreaudio
7377 COREVIDEO = $_corevideo
7378 DART = $_dart
7379 DGA = $_dga
7380 DIRECT3D = $_direct3d
7381 DIRECTFB = $_directfb
7382 DIRECTX = $_directx
7383 DVBIN = $_dvbin
7384 DVDNAV = $_dvdnav
7385 DVDNAV_INTERNAL = $dvdnav_internal
7386 DVDREAD = $_dvdread
7387 DVDREAD_INTERNAL = $_dvdread_internal
7388 DXR2 = $_dxr2
7389 DXR3 = $_dxr3
7390 ESD = $_esd
7391 FAAC=$_faac
7392 FAAD = $_faad
7393 FAAD_INTERNAL = $_faad_internal
7394 FASTMEMCPY = $_fastmemcpy
7395 FBDEV = $_fbdev
7396 FREETYPE = $_freetype
7397 FTP = $_ftp
7398 GIF = $_gif
7399 GGI = $_ggi
7400 GL = $_gl
7401 GL_WIN32 = $_gl_win32
7402 GL_X11 = $_gl_x11
7403 GL_SDL = $_gl_sdl
7404 MATRIXVIEW = $matrixview
7405 HAVE_POSIX_SELECT = $_posix_select
7406 HAVE_SYS_MMAN_H = $_mman
7407 IVTV = $_ivtv
7408 JACK = $_jack
7409 JOYSTICK = $_joystick
7410 JPEG = $_jpeg
7411 KAI = $_kai
7412 KVA = $_kva
7413 LADSPA = $_ladspa
7414 LIBA52 = $_liba52
7415 LIBASS = $_ass
7416 LIBBLURAY = $_bluray
7417 LIBBS2B = $_libbs2b
7418 LIBDCA = $_libdca
7419 LIBDV = $_libdv
7420 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7421 LIBLZO = $_liblzo
7422 LIBMAD = $_mad
7423 LIBMENU = $_menu
7424 LIBMENU_DVBIN = $_menu_dvbin
7425 LIBMPEG2 = $_libmpeg2
7426 LIBNEMESI = $_nemesi
7427 LIBNUT = $_libnut
7428 LIBSMBCLIENT = $_smb
7429 LIBTHEORA = $_theora
7430 LIRC = $_lirc
7431 LIVE555 = $_live
7432 MACOSX_FINDER = $_macosx_finder
7433 MD5SUM = $_md5sum
7434 MGA = $_mga
7435 MNG = $_mng
7436 MP3LAME = $_mp3lame
7437 MP3LIB = $_mp3lib
7438 MPG123 = $_mpg123
7439 MUSEPACK = $_musepack
7440 NAS = $_nas
7441 NATIVE_RTSP = $_native_rtsp
7442 NETWORKING = $networking
7443 OPENAL = $_openal
7444 OSS = $_ossaudio
7445 PE_EXECUTABLE = $_pe_executable
7446 PNG = $_png
7447 PNM = $_pnm
7448 PRIORITY = $_priority
7449 PULSE = $_pulse
7450 PVR = $_pvr
7451 QTX_CODECS = $_qtx
7452 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7453 QTX_EMULATION = $_qtx_emulation
7454 QUARTZ = $_quartz
7455 RADIO=$_radio
7456 RADIO_CAPTURE=$_radio_capture
7457 REAL_CODECS = $_real
7458 S3FB = $_s3fb
7459 SDL = $_sdl
7460 SPEEX = $_speex
7461 STREAM_CACHE = $_stream_cache
7462 SGIAUDIO = $_sgiaudio
7463 SUNAUDIO = $_sunaudio
7464 SVGA = $_svga
7465 TDFXFB = $_tdfxfb
7466 TDFXVID = $_tdfxvid
7467 TGA = $_tga
7468 TOOLAME=$_toolame
7469 TREMOR_INTERNAL = $_tremor_internal
7470 TV = $_tv
7471 TV_BSDBT848 = $_tv_bsdbt848
7472 TV_DSHOW = $_tv_dshow
7473 TV_V4L = $_tv_v4l
7474 TV_V4L1 = $_tv_v4l1
7475 TV_V4L2 = $_tv_v4l2
7476 TWOLAME=$_twolame
7477 UNRAR_EXEC = $_unrar_exec
7478 V4L2 = $_v4l2
7479 VCD = $_vcd
7480 VDPAU = $_vdpau
7481 VESA = $_vesa
7482 VIDIX = $_vidix
7483 VIDIX_PCIDB = $_vidix_pcidb_val
7484 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7485 VIDIX_IVTV=$_vidix_drv_ivtv
7486 VIDIX_MACH64=$_vidix_drv_mach64
7487 VIDIX_MGA=$_vidix_drv_mga
7488 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7489 VIDIX_NVIDIA=$_vidix_drv_nvidia
7490 VIDIX_PM2=$_vidix_drv_pm2
7491 VIDIX_PM3=$_vidix_drv_pm3
7492 VIDIX_RADEON=$_vidix_drv_radeon
7493 VIDIX_RAGE128=$_vidix_drv_rage128
7494 VIDIX_S3=$_vidix_drv_s3
7495 VIDIX_SH_VEU=$_vidix_drv_sh_veu
7496 VIDIX_SIS=$_vidix_drv_sis
7497 VIDIX_UNICHROME=$_vidix_drv_unichrome
7498 VORBIS = $_vorbis
7499 VSTREAM = $_vstream
7500 WII = $_wii
7501 WIN32DLL = $_win32dll
7502 WIN32WAVEOUT = $_win32waveout
7503 WIN32_EMULATION = $_win32_emulation
7504 WINVIDIX = $winvidix
7505 X11 = $_x11
7506 X264 = $_x264
7507 XANIM_CODECS = $_xanim
7508 XMGA = $_xmga
7509 XMMS_PLUGINS = $_xmms
7510 XV = $_xv
7511 XVID4 = $_xvid
7512 XVIDIX = $xvidix
7513 XVMC = $_xvmc
7514 XVR100 = $_xvr100
7515 YUV4MPEG = $_yuv4mpeg
7516 ZR = $_zr
7518 # FFmpeg
7519 FFMPEG = $ffmpeg
7520 FFMPEG_INTERNALS = $ffmpeg_internals
7521 FFMPEG_SOURCE_PATH = $_ffmpeg_source
7523 RANLIB = $_ranlib
7524 YASM = $_yasm
7525 YASMFLAGS = $YASMFLAGS
7527 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
7528 CONFIG_AANDCT = yes
7529 CONFIG_FFT = yes
7530 CONFIG_GOLOMB = yes
7531 CONFIG_H264DSP = yes
7532 CONFIG_LPC = yes
7533 CONFIG_MDCT = yes
7534 CONFIG_RDFT = yes
7536 CONFIG_BZLIB = $bzlib
7537 CONFIG_ENCODERS = yes
7538 CONFIG_GPL = yes
7539 CONFIG_MLIB = $_mlib
7540 CONFIG_MUXERS = $_mencoder
7541 CONFIG_VDPAU = $_vdpau
7542 CONFIG_XVMC = $_xvmc
7543 CONFIG_ZLIB = $_zlib
7545 HAVE_PTHREADS = $_pthreads
7546 HAVE_SHM = $_shm
7547 HAVE_W32THREADS = $_w32threads
7548 HAVE_YASM = $have_yasm
7552 #############################################################################
7554 ff_config_enable () {
7555 list=$(echo $1 | tr '[a-z]' '[A-Z]')
7556 item=$(echo $2 | tr '[a-z]' '[A-Z]')
7557 _nprefix=$3;
7558 test -z "$_nprefix" && _nprefix='CONFIG'
7559 for part in $list; do
7560 if $(echo $item | grep -q -E "(^| )$part($| )"); then
7561 echo "#define ${_nprefix}_$part 1"
7562 else
7563 echo "#define ${_nprefix}_$part 0"
7565 done
7568 echo "Creating config.h"
7569 cat > $TMPH << EOF
7570 /*----------------------------------------------------------------------------
7571 ** This file has been automatically generated by configure any changes in it
7572 ** will be lost when you run configure again.
7573 ** Instead of modifying definitions here, use the --enable/--disable options
7574 ** of the configure script! See ./configure --help for details.
7575 *---------------------------------------------------------------------------*/
7577 #ifndef MPLAYER_CONFIG_H
7578 #define MPLAYER_CONFIG_H
7580 /* Undefine this if you do not want to select mono audio (left or right)
7581 with a stereo MPEG layer 2/3 audio stream. The command line option
7582 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7583 right-only), with 0 being the default.
7585 #define CONFIG_FAKE_MONO 1
7587 /* set up audio OUTBURST. Do not change this! */
7588 #define OUTBURST 512
7590 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
7591 #undef FAST_OSD
7592 #undef FAST_OSD_TABLE
7594 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
7595 #define MPEG12_POSTPROC 1
7596 #define ATTRIBUTE_ALIGNED_MAX 16
7600 #define CONFIGURATION "$configuration"
7602 #define MPLAYER_DATADIR "$_datadir"
7603 #define MPLAYER_CONFDIR "$_confdir"
7604 #define MPLAYER_LIBDIR "$_libdir"
7605 #define MPLAYER_LOCALEDIR "$_localedir"
7607 $def_translation
7609 /* definitions needed by included libraries */
7610 #define HAVE_INTTYPES_H 1
7611 /* libmpeg2 + FFmpeg */
7612 $def_fast_inttypes
7613 /* libdvdcss */
7614 #define HAVE_ERRNO_H 1
7615 /* libdvdcss + libdvdread */
7616 #define HAVE_LIMITS_H 1
7617 /* libdvdcss + libfaad2 */
7618 #define HAVE_UNISTD_H 1
7619 /* libfaad2 + libdvdread */
7620 #define STDC_HEADERS 1
7621 #define HAVE_MEMCPY 1
7622 /* libfaad2 */
7623 #define HAVE_STDLIB_H 1
7624 #define HAVE_STRING_H 1
7625 #define HAVE_STRINGS_H 1
7626 #define HAVE_SYS_STAT_H 1
7627 #define HAVE_SYS_TYPES_H 1
7628 /* libdvdnav */
7629 #define READ_CACHE_TRACE 0
7630 /* libdvdread */
7631 #define HAVE_DLFCN_H 1
7632 $def_dvdcss
7635 /* system headers */
7636 $def_alloca_h
7637 $def_alsa_asoundlib_h
7638 $def_altivec_h
7639 $def_malloc_h
7640 $def_mman_h
7641 $def_mman_has_map_failed
7642 $def_soundcard_h
7643 $def_sys_asoundlib_h
7644 $def_sys_soundcard_h
7645 $def_sys_sysinfo_h
7646 $def_termios_h
7647 $def_termios_sys_h
7648 $def_winsock2_h
7651 /* system functions */
7652 $def_gethostbyname2
7653 $def_gettimeofday
7654 $def_glob
7655 $def_langinfo
7656 $def_lrintf
7657 $def_map_memalign
7658 $def_memalign
7659 $def_nanosleep
7660 $def_posix_select
7661 $def_select
7662 $def_setenv
7663 $def_setmode
7664 $def_shm
7665 $def_strsep
7666 $def_swab
7667 $def_sysi86
7668 $def_sysi86_iv
7669 $def_termcap
7670 $def_termios
7671 $def_vsscanf
7674 /* system-specific features */
7675 $def_asmalign_pot
7676 $def_builtin_expect
7677 $def_dl
7678 $def_dos_paths
7679 $def_extern_asm
7680 $def_extern_prefix
7681 $def_iconv
7682 $def_kstat
7683 $def_macosx_bundle
7684 $def_macosx_finder
7685 $def_maemo
7686 $def_named_asm_args
7687 $def_priority
7688 $def_quicktime
7689 $def_restrict_keyword
7690 $def_rtc
7691 $def_unrar_exec
7694 /* configurable options */
7695 $def_charset
7696 $def_crash_debug
7697 $def_debug
7698 $def_dynamic_plugins
7699 $def_fastmemcpy
7700 $def_menu
7701 $def_runtime_cpudetection
7702 $def_sighandler
7703 $def_sortsub
7704 $def_stream_cache
7705 $def_pthread_cache
7708 /* CPU stuff */
7709 #define __CPU__ $iproc
7710 $def_ebx_available
7711 $def_words_endian
7712 $def_bigendian
7713 $(ff_config_enable "$arch_all" "$arch" "ARCH")
7714 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
7715 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
7718 /* Blu-ray/DVD/VCD/CD */
7719 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
7720 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
7721 $def_bluray
7722 $def_bsdi_dvd
7723 $def_cddb
7724 $def_cdio
7725 $def_cdparanoia
7726 $def_cdrom
7727 $def_dvd
7728 $def_dvd_bsd
7729 $def_dvd_darwin
7730 $def_dvd_linux
7731 $def_dvd_openbsd
7732 $def_dvdio
7733 $def_dvdnav
7734 $def_dvdread
7735 $def_hpux_scsi_h
7736 $def_libcdio
7737 $def_sol_scsi_h
7738 $def_vcd
7741 /* codec libraries */
7742 $def_faac
7743 $def_faad
7744 $def_faad_internal
7745 $def_liba52
7746 $def_libdca
7747 $def_libdv
7748 $def_liblzo
7749 $def_libmpeg2
7750 $def_mad
7751 $def_mp3lame
7752 $def_mp3lame_preset
7753 $def_mp3lame_preset_medium
7754 $def_mp3lib
7755 $def_mpg123
7756 $def_musepack
7757 $def_speex
7758 $def_theora
7759 $def_toolame
7760 $def_tremor
7761 $def_twolame
7762 $def_vorbis
7763 $def_x264
7764 $def_xvid
7765 $def_zlib
7767 $def_libnut
7770 /* binary codecs */
7771 $def_qtx
7772 $def_qtx_win32
7773 $def_real
7774 $def_win32_loader
7775 $def_win32dll
7776 $def_xanim
7777 $def_xmms
7778 #define BINARY_CODECS_PATH "$_codecsdir"
7779 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7782 /* Audio output drivers */
7783 $def_alsa
7784 $def_alsa1x
7785 $def_alsa5
7786 $def_alsa9
7787 $def_arts
7788 $def_coreaudio
7789 $def_dart
7790 $def_esd
7791 $def_esd_latency
7792 $def_jack
7793 $def_kai
7794 $def_nas
7795 $def_openal
7796 $def_openal_h
7797 $def_ossaudio
7798 $def_ossaudio_devdsp
7799 $def_ossaudio_devmixer
7800 $def_pulse
7801 $def_sgiaudio
7802 $def_sunaudio
7803 $def_win32waveout
7805 $def_ladspa
7806 $def_libbs2b
7809 /* input */
7810 $def_apple_ir
7811 $def_apple_remote
7812 $def_ioctl_bt848_h_name
7813 $def_ioctl_meteor_h_name
7814 $def_joystick
7815 $def_lirc
7816 $def_lircc
7817 $def_pvr
7818 $def_radio
7819 $def_radio_bsdbt848
7820 $def_radio_capture
7821 $def_radio_v4l
7822 $def_radio_v4l2
7823 $def_tv
7824 $def_tv_bsdbt848
7825 $def_tv_dshow
7826 $def_tv_v4l
7827 $def_tv_v4l1
7828 $def_tv_v4l2
7831 /* font stuff */
7832 $def_ass
7833 $def_bitmap_font
7834 $def_enca
7835 $def_fontconfig
7836 $def_freetype
7837 $def_fribidi
7840 /* networking */
7841 $def_closesocket
7842 $def_ftp
7843 $def_inet6
7844 $def_inet_aton
7845 $def_inet_pton
7846 $def_live
7847 $def_nemesi
7848 $def_networking
7849 $def_smb
7850 $def_socklen_t
7851 $def_vstream
7854 /* libvo options */
7855 $def_3dfx
7856 $def_aa
7857 $def_bl
7858 $def_caca
7859 $def_corevideo
7860 $def_dga
7861 $def_dga1
7862 $def_dga2
7863 $def_direct3d
7864 $def_directfb
7865 $def_directx
7866 $def_dvb
7867 $def_dvbin
7868 $def_dxr2
7869 $def_dxr3
7870 $def_fbdev
7871 $def_ggi
7872 $def_ggiwmh
7873 $def_gif
7874 $def_gif_4
7875 $def_gif_tvt_hack
7876 $def_gl
7877 $def_gl_win32
7878 $def_gl_x11
7879 $def_gl_sdl
7880 $def_matrixview
7881 $def_ivtv
7882 $def_jpeg
7883 $def_kva
7884 $def_md5sum
7885 $def_mga
7886 $def_mng
7887 $def_png
7888 $def_pnm
7889 $def_quartz
7890 $def_s3fb
7891 $def_sdl
7892 $def_sdl_sdl_h
7893 $def_svga
7894 $def_tdfxfb
7895 $def_tdfxvid
7896 $def_tga
7897 $def_v4l2
7898 $def_vdpau
7899 $def_vesa
7900 $def_vidix
7901 $def_vidix_drv_cyberblade
7902 $def_vidix_drv_ivtv
7903 $def_vidix_drv_mach64
7904 $def_vidix_drv_mga
7905 $def_vidix_drv_mga_crtc2
7906 $def_vidix_drv_nvidia
7907 $def_vidix_drv_pm3
7908 $def_vidix_drv_radeon
7909 $def_vidix_drv_rage128
7910 $def_vidix_drv_s3
7911 $def_vidix_drv_sh_veu
7912 $def_vidix_drv_sis
7913 $def_vidix_drv_unichrome
7914 $def_vidix_pfx
7915 $def_vm
7916 $def_wii
7917 $def_x11
7918 $def_xdpms
7919 $def_xf86keysym
7920 $def_xinerama
7921 $def_xmga
7922 $def_xss
7923 $def_xv
7924 $def_xvmc
7925 $def_xvr100
7926 $def_yuv4mpeg
7927 $def_zr
7930 /* FFmpeg */
7931 $def_ffmpeg
7932 $def_ffmpeg_internals
7934 #define CONFIG_DECODERS 1
7935 #define CONFIG_ENCODERS 1
7936 #define CONFIG_DEMUXERS 1
7937 $def_muxers
7939 $def_arpa_inet_h
7940 $def_bswap
7941 $def_bzlib
7942 $def_dcbzl
7943 $def_exp2
7944 $def_exp2f
7945 $def_fast_64bit
7946 $def_fast_unaligned
7947 $def_llrint
7948 $def_log2
7949 $def_log2f
7950 $def_lrint
7951 $def_memalign_hack
7952 $def_mlib
7953 $def_mkstemp
7954 $def_posix_memalign
7955 $def_pthreads
7956 $def_round
7957 $def_roundf
7958 $def_ten_operands
7959 $def_threads
7960 $def_truncf
7961 $def_xform_asm
7962 $def_yasm
7964 #define CONFIG_FASTDIV 0
7965 #define CONFIG_FFSERVER 0
7966 #define CONFIG_GPL 1
7967 #define CONFIG_GRAY 0
7968 #define CONFIG_HARDCODED_TABLES 0
7969 #define CONFIG_LIBVORBIS 0
7970 #define CONFIG_POWERPC_PERF 0
7971 #define CONFIG_SMALL 0
7972 #define CONFIG_SWSCALE_ALPHA 1
7974 #define HAVE_ATTRIBUTE_PACKED 1
7975 #define HAVE_GETHRTIME 0
7976 #define HAVE_INLINE_ASM 1
7977 #define HAVE_LDBRX 0
7978 #define HAVE_POLL_H 1
7979 #define HAVE_PPC4XX 0
7980 #define HAVE_VFP_ARGS 1
7981 #define HAVE_VIRTUALALLOC 0
7983 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
7984 #define CONFIG_AANDCT 1
7985 #define CONFIG_DCT 1
7986 #define CONFIG_DWT 1
7987 #define CONFIG_FFT 1
7988 #define CONFIG_GOLOMB 1
7989 #define CONFIG_H264DSP 1
7990 #define CONFIG_LPC 1
7991 #define CONFIG_MDCT 1
7992 #define CONFIG_RDFT 1
7994 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7995 #ifndef MP_DEBUG
7996 #define HAVE_EBP_AVAILABLE 1
7997 #else
7998 #define HAVE_EBP_AVAILABLE 0
7999 #endif
8001 #endif /* MPLAYER_CONFIG_H */
8004 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8005 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8007 #############################################################################
8009 ./version.sh `$_cc -dumpversion`
8011 cat << EOF
8013 Config files successfully generated by ./configure $configuration !
8015 Install prefix: $_prefix
8016 Data directory: $_datadir
8017 Config direct.: $_confdir
8019 Byte order: $_byte_order
8020 Optimizing for: $_optimizing
8022 Languages:
8023 Messages (in addition to English): $language_msg
8024 Manual pages: $language_man
8025 Documentation: $language_doc
8027 Enabled optional drivers:
8028 Input: $inputmodules
8029 Codecs: $codecmodules
8030 Audio output: $aomodules
8031 Video output: $vomodules
8033 Disabled optional drivers:
8034 Input: $noinputmodules
8035 Codecs: $nocodecmodules
8036 Audio output: $noaomodules
8037 Video output: $novomodules
8039 'config.h' and 'config.mak' contain your configuration options.
8040 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8041 compile *** DO NOT REPORT BUGS if you tweak these files ***
8043 'make' will now compile MPlayer and 'make install' will install it.
8044 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8049 if test "$_mtrr" = yes ; then
8050 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
8051 echo
8054 if ! x86_32; then
8055 cat <<EOF
8056 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8057 operating system ($system_name). You may encounter a few files that cannot
8058 be played due to missing open source video/audio codec support.
8064 cat <<EOF
8065 Check $TMPLOG if you wonder why an autodetection failed (make sure
8066 development headers/packages are installed).
8068 NOTE: The --enable-* parameters unconditionally force options on, completely
8069 skipping autodetection. This behavior is unlike what you may be used to from
8070 autoconf-based configure scripts that can decide to override you. This greater
8071 level of control comes at a price. You may have to provide the correct compiler
8072 and linker flags yourself.
8073 If you used one of these options (except --enable-menu and similar ones that
8074 turn on internal features) and experience a compilation or linking failure,
8075 make sure you have passed the necessary compiler/linker flags to configure.
8077 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
8081 if test "$warn_cflags" = yes; then
8082 cat <<EOF
8084 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8085 but:
8087 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8089 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8090 To do so, execute 'CFLAGS= ./configure <options>'
8095 # Last move:
8096 rm -rf "$mplayer_tmpdir"