ao_alsa: Reinitialize parameters properly when reopening
[mplayer/glamo.git] / configure
bloba8a9f9caf160312770b0c23fb2c37756f8cca22a
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, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 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")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --disable-largefiles disable support for files > 2GB [enable]
229 --enable-linux-devfs set default devices to devfs [disable]
230 --enable-termcap use termcap database for key codes [autodetect]
231 --enable-termios use termios database for key codes [autodetect]
232 --disable-iconv disable iconv for encoding conversion [autodetect]
233 --disable-langinfo do not use langinfo [autodetect]
234 --enable-lirc enable LIRC (remote control) support [autodetect]
235 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
236 --enable-joystick enable joystick support [disable]
237 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
238 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
239 --disable-vm disable X video mode extensions [autodetect]
240 --disable-xf86keysym disable support for multimedia keys [autodetect]
241 --enable-radio enable radio interface [disable]
242 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
243 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
244 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
245 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
246 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
247 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
248 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
249 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
250 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
251 --disable-network disable networking [enable]
252 --enable-winsock2_h enable winsock2_h [autodetect]
253 --enable-smb enable Samba (SMB) input [autodetect]
254 --enable-live enable LIVE555 Streaming Media [autodetect]
255 --enable-nemesi enable Nemesi Streaming Media [autodetect]
256 --disable-vcd disable VCD support [autodetect]
257 --disable-dvdnav disable libdvdnav [autodetect]
258 --disable-dvdread disable libdvdread [autodetect]
259 --disable-dvdread-internal disable internal libdvdread [autodetect]
260 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
261 --disable-cdparanoia disable cdparanoia [autodetect]
262 --disable-cddb disable cddb [autodetect]
263 --disable-bitmap-font disable bitmap font support [enable]
264 --disable-freetype disable FreeType 2 font rendering [autodetect]
265 --disable-fontconfig disable fontconfig font lookup [autodetect]
266 --disable-unrarexec disable using of UnRAR executable [enabled]
267 --enable-menu enable OSD menu (not DVD menu) [disabled]
268 --disable-sortsub disable subtitle sorting [enabled]
269 --enable-fribidi enable the FriBiDi libs [autodetect]
270 --disable-enca disable ENCA charset oracle library [autodetect]
271 --disable-maemo disable maemo specific features [autodetect]
272 --enable-macosx-finder enable Mac OS X Finder invocation parameter
273 parsing [disabled]
274 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
275 --disable-inet6 disable IPv6 support [autodetect]
276 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
277 --disable-ftp disable FTP support [enabled]
278 --disable-vstream disable TiVo vstream client support [autodetect]
279 --disable-pthreads disable Posix threads support [autodetect]
280 --disable-w32threads disable Win32 threads support [autodetect]
281 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
282 --enable-rpath enable runtime linker path for extra libs [disabled]
284 Codecs:
285 --enable-gif enable GIF support [autodetect]
286 --enable-png enable PNG input/output support [autodetect]
287 --enable-mng enable MNG input support [autodetect]
288 --enable-jpeg enable JPEG input/output support [autodetect]
289 --enable-libcdio enable libcdio support [autodetect]
290 --enable-liblzo enable liblzo support [autodetect]
291 --disable-win32dll disable Win32 DLL support [enabled]
292 --disable-qtx disable QuickTime codecs support [enabled]
293 --disable-xanim disable XAnim codecs support [enabled]
294 --disable-real disable RealPlayer codecs support [enabled]
295 --disable-xvid disable Xvid [autodetect]
296 --disable-x264 disable x264 [autodetect]
297 --disable-libnut disable libnut [autodetect]
298 --disable-libavutil disable libavutil [autodetect]
299 --disable-libavcodec disable libavcodec [autodetect]
300 --disable-libavformat disable libavformat [autodetect]
301 --disable-libpostproc disable libpostproc [autodetect]
302 --disable-libswscale disable libswscale [autodetect]
303 --disable-tremor-internal disable internal Tremor [enabled]
304 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
305 --enable-tremor enable external Tremor [autodetect]
306 --disable-libvorbis disable libvorbis support [autodetect]
307 --disable-speex disable Speex support [autodetect]
308 --enable-theora enable OggTheora libraries [autodetect]
309 --enable-faad enable external FAAD2 (AAC) [autodetect]
310 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
311 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
312 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
313 --disable-ladspa disable LADSPA plugin support [autodetect]
314 --disable-libbs2b disable libbs2b audio filter support [autodetect]
315 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
316 --disable-mad disable libmad (MPEG audio) support [autodetect]
317 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
318 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
319 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
320 --enable-xmms enable XMMS input plugin support [disabled]
321 --enable-libdca enable libdca support [autodetect]
322 --disable-mp3lib disable builtin mp3lib [autodetect]
323 --disable-liba52 disable liba52 [autodetect]
324 --disable-liba52-internal disable builtin liba52 [autodetect]
325 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
326 --disable-musepack disable musepack support [autodetect]
328 Video output:
329 --disable-vidix disable VIDIX [for x86 *nix]
330 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
331 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
332 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
333 --disable-vidix-pcidb disable VIDIX PCI device name database
334 --enable-dhahelper enable VIDIX dhahelper support
335 --enable-svgalib_helper enable VIDIX svgalib_helper support
336 --enable-gl enable OpenGL video output [autodetect]
337 --enable-dga2 enable DGA 2 support [autodetect]
338 --enable-dga1 enable DGA 1 support [autodetect]
339 --enable-vesa enable VESA video output [autodetect]
340 --enable-svga enable SVGAlib video output [autodetect]
341 --enable-sdl enable SDL video output [autodetect]
342 --enable-kva enable KVA video output [autodetect]
343 --enable-aa enable AAlib video output [autodetect]
344 --enable-caca enable CACA video output [autodetect]
345 --enable-ggi enable GGI video output [autodetect]
346 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
347 --enable-direct3d enable Direct3D video output [autodetect]
348 --enable-directx enable DirectX video output [autodetect]
349 --enable-dxr2 enable DXR2 video output [autodetect]
350 --enable-dxr3 enable DXR3/H+ video output [autodetect]
351 --enable-ivtv enable IVTV TV-Out video output [autodetect]
352 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
353 --enable-dvb enable DVB video output [autodetect]
354 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
355 --enable-mga enable mga_vid video output [autodetect]
356 --enable-xmga enable mga_vid X11 video output [autodetect]
357 --enable-xv enable Xv video output [autodetect]
358 --enable-xvmc enable XvMC acceleration [disable]
359 --enable-vdpau enable VDPAU acceleration [autodetect]
360 --enable-vm enable XF86VidMode support [autodetect]
361 --enable-xinerama enable Xinerama support [autodetect]
362 --enable-x11 enable X11 video output [autodetect]
363 --enable-xshape enable XShape support [autodetect]
364 --disable-xss disable screensaver support via xss [autodetect]
365 --enable-fbdev enable FBDev video output [autodetect]
366 --enable-mlib enable mediaLib video output (Solaris) [disable]
367 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
368 --enable-tdfxfb enable tdfxfb video output [disable]
369 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
370 --enable-wii enable Nintendo Wii/GameCube video output [disable]
371 --enable-directfb enable DirectFB video output [autodetect]
372 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
373 --enable-bl enable Blinkenlights video output [disable]
374 --enable-tdfxvid enable tdfx_vid video output [disable]
375 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
376 --disable-tga disable Targa video output [enable]
377 --disable-pnm disable PNM video output [enable]
378 --disable-md5sum disable md5sum video output [enable]
379 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
380 --disable-corevideo disable CoreVideo video output [autodetect]
381 --disable-quartz disable Quartz video output [autodetect]
383 Audio output:
384 --disable-alsa disable ALSA audio output [autodetect]
385 --disable-ossaudio disable OSS audio output [autodetect]
386 --disable-arts disable aRts audio output [autodetect]
387 --disable-esd disable esd audio output [autodetect]
388 --disable-pulse disable Pulseaudio audio output [autodetect]
389 --disable-jack disable JACK audio output [autodetect]
390 --enable-openal enable OpenAL audio output [disable]
391 --disable-nas disable NAS audio output [autodetect]
392 --disable-sgiaudio disable SGI audio output [autodetect]
393 --disable-sunaudio disable Sun audio output [autodetect]
394 --disable-dart disable DART audio output [autodetect]
395 --disable-win32waveout disable Windows waveout audio output [autodetect]
396 --disable-coreaudio disable CoreAudio audio output [autodetect]
397 --disable-select disable using select() on the audio device [enable]
399 Language options:
400 --charset=charset convert the console messages to this character set
401 --language-doc=lang language to use for the documentation [en]
402 --language-man=lang language to use for the man pages [en]
403 --language-msg=lang language to use for the messages [en]
404 --language=lang default language to use [en]
405 Specific options override --language. You can pass a list of languages separated
406 by whitespace or commas instead of a single language. Nonexisting translations
407 will be dropped from each list. All documentation and man page translations
408 available in the list will be installed, for the messages the first available
409 translation will be used. The value "all" will activate all translations. The
410 LINGUAS environment variable is honored. In all cases the fallback is English.
411 Available values are: all $msg_lang_all
413 Miscellaneous options:
414 --enable-runtime-cpudetection enable runtime CPU detection [disable]
415 --enable-cross-compile enable cross-compilation [autodetect]
416 --cc=COMPILER C compiler to build MPlayer [gcc]
417 --host-cc=COMPILER C compiler for tools needed while building [gcc]
418 --as=ASSEMBLER assembler to build MPlayer [as]
419 --nm=NM nm tool to build MPlayer [nm]
420 --yasm=YASM Yasm assembler to build MPlayer [yasm]
421 --ar=AR librarian to build MPlayer [ar]
422 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
423 --windres=WINDRES windres to build MPlayer [windres]
424 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
425 --enable-static build a statically linked binary
426 --with-install=PATH path to a custom install program
428 Advanced options:
429 --enable-mmx enable MMX [autodetect]
430 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
431 --enable-3dnow enable 3DNow! [autodetect]
432 --enable-3dnowext enable extended 3DNow! [autodetect]
433 --enable-sse enable SSE [autodetect]
434 --enable-sse2 enable SSE2 [autodetect]
435 --enable-ssse3 enable SSSE3 [autodetect]
436 --enable-shm enable shm [autodetect]
437 --enable-altivec enable AltiVec (PowerPC) [autodetect]
438 --enable-armv5te enable DSP extensions (ARM) [autodetect]
439 --enable-armv6 enable ARMv6 (ARM) [autodetect]
440 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
441 --enable-armvfp enable ARM VFP (ARM) [autodetect]
442 --enable-neon enable NEON (ARM) [autodetect]
443 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
444 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
445 --enable-big-endian force byte order to big-endian [autodetect]
446 --enable-debug[=1-3] compile-in debugging information [disable]
447 --enable-profile compile-in profiling information [disable]
448 --disable-sighandler disable sighandler for crashes [enable]
449 --enable-crash-debug enable automatic gdb attach on crash [disable]
450 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
451 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
453 Use these options if autodetection fails:
454 --extra-cflags=FLAGS extra CFLAGS
455 --extra-ldflags=FLAGS extra LDFLAGS
456 --extra-libs=FLAGS extra linker flags
457 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
458 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
459 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
461 --with-freetype-config=PATH path to freetype-config
462 --with-fribidi-config=PATH path to fribidi-config
463 --with-glib-config=PATH path to glib*-config
464 --with-gtk-config=PATH path to gtk*-config
465 --with-sdl-config=PATH path to sdl*-config
466 --with-dvdnav-config=PATH path to dvdnav-config
467 --with-dvdread-config=PATH path to dvdread-config
469 This configure script is NOT autoconf-based, even though its output is similar.
470 It will try to autodetect all configuration options. If you --enable an option
471 it will be forcefully turned on, skipping autodetection. This can break
472 compilation, so you need to know what you are doing.
474 exit 0
475 } #show_help()
477 # GOTCHA: the variables below defines the default behavior for autodetection
478 # and have - unless stated otherwise - at least 2 states : yes no
479 # If autodetection is available then the third state is: auto
480 _mmx=auto
481 _3dnow=auto
482 _3dnowext=auto
483 _mmxext=auto
484 _sse=auto
485 _sse2=auto
486 _ssse3=auto
487 _cmov=auto
488 _fast_cmov=auto
489 _armv5te=auto
490 _armv6=auto
491 _armv6t2=auto
492 _armvfp=auto
493 neon=auto
494 _iwmmxt=auto
495 _mtrr=auto
496 _altivec=auto
497 _install=install
498 _ranlib=ranlib
499 _windres=windres
500 _cc=cc
501 _ar=ar
502 test "$CC" && _cc="$CC"
503 _as=auto
504 _nm=auto
505 _yasm=yasm
506 _runtime_cpudetection=no
507 _cross_compile=auto
508 _prefix="/usr/local"
509 _libavutil=auto
510 _libavcodec=auto
511 _libavformat=auto
512 _libpostproc=auto
513 _libswscale=auto
514 _libavcodec_internals=no
515 _libswscale_internals=no
516 _mencoder=yes
517 _mplayer=yes
518 _x11=auto
519 _xshape=auto
520 _xss=auto
521 _dga1=auto
522 _dga2=auto
523 _xv=auto
524 _xvmc=no #auto when complete
525 _vdpau=auto
526 _sdl=auto
527 _kva=auto
528 _direct3d=auto
529 _directx=auto
530 _win32waveout=auto
531 _nas=auto
532 _png=auto
533 _mng=auto
534 _jpeg=auto
535 _pnm=yes
536 _md5sum=yes
537 _yuv4mpeg=yes
538 _gif=auto
539 _gl=auto
540 _ggi=auto
541 _ggiwmh=auto
542 _aa=auto
543 _caca=auto
544 _svga=auto
545 _vesa=auto
546 _fbdev=auto
547 _dvb=auto
548 _dvbhead=auto
549 _dxr2=auto
550 _dxr3=auto
551 _ivtv=auto
552 _v4l2=auto
553 _iconv=auto
554 _langinfo=auto
555 _rtc=auto
556 _ossaudio=auto
557 _arts=auto
558 _esd=auto
559 _pulse=auto
560 _jack=auto
561 _dart=auto
562 _openal=no
563 _libcdio=auto
564 _liblzo=auto
565 _mad=auto
566 _mp3lame=auto
567 _toolame=auto
568 _twolame=auto
569 _tremor=auto
570 _tremor_internal=yes
571 _tremor_low=no
572 _libvorbis=auto
573 _speex=auto
574 _theora=auto
575 _mp3lib=auto
576 _liba52=auto
577 _liba52_internal=auto
578 _libdca=auto
579 _libmpeg2=auto
580 _faad=auto
581 _faad_internal=auto
582 _faad_fixed=no
583 _faac=auto
584 _ladspa=auto
585 _libbs2b=auto
586 _xmms=no
587 _vcd=auto
588 _dvdnav=auto
589 _dvdnavconfig=dvdnav-config
590 _dvdreadconfig=dvdread-config
591 _dvdread=auto
592 _dvdread_internal=auto
593 _libdvdcss_internal=auto
594 _xanim=auto
595 _real=auto
596 _live=auto
597 _nemesi=auto
598 _native_rtsp=yes
599 _xinerama=auto
600 _mga=auto
601 _xmga=auto
602 _vm=auto
603 _xf86keysym=auto
604 _mlib=no #broken, thus disabled
605 _sgiaudio=auto
606 _sunaudio=auto
607 _alsa=auto
608 _fastmemcpy=yes
609 _unrar_exec=auto
610 _win32dll=auto
611 _select=yes
612 _radio=no
613 _radio_capture=no
614 _radio_v4l=auto
615 _radio_v4l2=auto
616 _radio_bsdbt848=auto
617 _tv=yes
618 _tv_v4l1=auto
619 _tv_v4l2=auto
620 _tv_bsdbt848=auto
621 _tv_dshow=auto
622 _pvr=auto
623 _network=yes
624 _winsock2_h=auto
625 _smb=auto
626 _vidix=auto
627 _vidix_pcidb=yes
628 _dhahelper=no
629 _svgalib_helper=no
630 _joystick=no
631 _xvid=auto
632 _x264=auto
633 _libnut=auto
634 _lirc=auto
635 _lircc=auto
636 _apple_remote=auto
637 _apple_ir=auto
638 _gui=no
639 _gtk1=no
640 _termcap=auto
641 _termios=auto
642 _3dfx=no
643 _s3fb=no
644 _wii=no
645 _tdfxfb=no
646 _tdfxvid=no
647 _xvr100=auto
648 _tga=yes
649 _directfb=auto
650 _zr=auto
651 _bl=no
652 _largefiles=yes
653 #language=en
654 _shm=auto
655 _linux_devfs=no
656 _charset="UTF-8"
657 _dynamic_plugins=no
658 _crash_debug=no
659 _sighandler=yes
660 _libdv=auto
661 _cdparanoia=auto
662 _cddb=auto
663 _big_endian=auto
664 _bitmap_font=yes
665 _freetype=auto
666 _fontconfig=auto
667 _menu=no
668 _qtx=auto
669 _maemo=auto
670 _coreaudio=auto
671 _corevideo=auto
672 _quartz=auto
673 quicktime=auto
674 _macosx_finder=no
675 _macosx_bundle=auto
676 _sortsub=yes
677 _freetypeconfig='freetype-config'
678 _fribidi=auto
679 _fribidiconfig='fribidi-config'
680 _enca=auto
681 _inet6=auto
682 _gethostbyname2=auto
683 _ftp=yes
684 _musepack=auto
685 _vstream=auto
686 _pthreads=auto
687 _w32threads=auto
688 _ass=auto
689 _rpath=no
690 _asmalign_pot=auto
691 _stream_cache=yes
692 _priority=no
693 def_dos_paths="#define HAVE_DOS_PATHS 0"
694 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
695 def_priority="#undef CONFIG_PRIORITY"
696 def_pthread_cache="#undef PTHREAD_CACHE"
697 _need_shmem=yes
698 for ac_option do
699 case "$ac_option" in
700 --help|-help|-h)
701 show_help
703 --prefix=*)
704 _prefix=$(echo $ac_option | cut -d '=' -f 2)
706 --bindir=*)
707 _bindir=$(echo $ac_option | cut -d '=' -f 2)
709 --datadir=*)
710 _datadir=$(echo $ac_option | cut -d '=' -f 2)
712 --mandir=*)
713 _mandir=$(echo $ac_option | cut -d '=' -f 2)
715 --confdir=*)
716 _confdir=$(echo $ac_option | cut -d '=' -f 2)
718 --libdir=*)
719 _libdir=$(echo $ac_option | cut -d '=' -f 2)
721 --codecsdir=*)
722 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
724 --win32codecsdir=*)
725 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
727 --xanimcodecsdir=*)
728 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
730 --realcodecsdir=*)
731 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
734 --with-install=*)
735 _install=$(echo $ac_option | cut -d '=' -f 2 )
737 --with-xvmclib=*)
738 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
741 --with-sdl-config=*)
742 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
744 --with-freetype-config=*)
745 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
747 --with-fribidi-config=*)
748 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
750 --with-gtk-config=*)
751 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
753 --with-glib-config=*)
754 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
756 --with-dvdnav-config=*)
757 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
759 --with-dvdread-config=*)
760 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
763 --extra-cflags=*)
764 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
766 --extra-ldflags=*)
767 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
769 --extra-libs=*)
770 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
772 --extra-libs-mplayer=*)
773 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
775 --extra-libs-mencoder=*)
776 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
779 --target=*)
780 _target=$(echo $ac_option | cut -d '=' -f 2)
782 --cc=*)
783 _cc=$(echo $ac_option | cut -d '=' -f 2)
785 --host-cc=*)
786 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
788 --as=*)
789 _as=$(echo $ac_option | cut -d '=' -f 2)
791 --nm=*)
792 _nm=$(echo $ac_option | cut -d '=' -f 2)
794 --yasm=*)
795 _yasm=$(echo $ac_option | cut -d '=' -f 2)
797 --ar=*)
798 _ar=$(echo $ac_option | cut -d '=' -f 2)
800 --ranlib=*)
801 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
803 --windres=*)
804 _windres=$(echo $ac_option | cut -d '=' -f 2)
806 --charset=*)
807 _charset=$(echo $ac_option | cut -d '=' -f 2)
809 --language-doc=*)
810 language_doc=$(echo $ac_option | cut -d '=' -f 2)
812 --language-man=*)
813 language_man=$(echo $ac_option | cut -d '=' -f 2)
815 --language-msg=*)
816 language_msg=$(echo $ac_option | cut -d '=' -f 2)
818 --language=*)
819 language=$(echo $ac_option | cut -d '=' -f 2)
822 --enable-static)
823 _ld_static='-static'
825 --disable-static)
826 _ld_static=''
828 --enable-profile)
829 _profile='-p'
831 --disable-profile)
832 _profile=
834 --enable-debug)
835 _debug='-g'
837 --enable-debug=*)
838 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
840 --disable-debug)
841 _debug=
843 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
844 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
845 --enable-cross-compile) _cross_compile=yes ;;
846 --disable-cross-compile) _cross_compile=no ;;
847 --enable-mencoder) _mencoder=yes ;;
848 --disable-mencoder) _mencoder=no ;;
849 --enable-mplayer) _mplayer=yes ;;
850 --disable-mplayer) _mplayer=no ;;
851 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
852 --disable-dynamic-plugins) _dynamic_plugins=no ;;
853 --enable-x11) _x11=yes ;;
854 --disable-x11) _x11=no ;;
855 --enable-xshape) _xshape=yes ;;
856 --disable-xshape) _xshape=no ;;
857 --enable-xss) _xss=yes ;;
858 --disable-xss) _xss=no ;;
859 --enable-xv) _xv=yes ;;
860 --disable-xv) _xv=no ;;
861 --enable-xvmc) _xvmc=yes ;;
862 --disable-xvmc) _xvmc=no ;;
863 --enable-vdpau) _vdpau=yes ;;
864 --disable-vdpau) _vdpau=no ;;
865 --enable-sdl) _sdl=yes ;;
866 --disable-sdl) _sdl=no ;;
867 --enable-kva) _kva=yes ;;
868 --disable-kva) _kva=no ;;
869 --enable-direct3d) _direct3d=yes ;;
870 --disable-direct3d) _direct3d=no ;;
871 --enable-directx) _directx=yes ;;
872 --disable-directx) _directx=no ;;
873 --enable-win32waveout) _win32waveout=yes ;;
874 --disable-win32waveout) _win32waveout=no ;;
875 --enable-nas) _nas=yes ;;
876 --disable-nas) _nas=no ;;
877 --enable-png) _png=yes ;;
878 --disable-png) _png=no ;;
879 --enable-mng) _mng=yes ;;
880 --disable-mng) _mng=no ;;
881 --enable-jpeg) _jpeg=yes ;;
882 --disable-jpeg) _jpeg=no ;;
883 --enable-pnm) _pnm=yes ;;
884 --disable-pnm) _pnm=no ;;
885 --enable-md5sum) _md5sum=yes ;;
886 --disable-md5sum) _md5sum=no ;;
887 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
888 --disable-yuv4mpeg) _yuv4mpeg=no ;;
889 --enable-gif) _gif=yes ;;
890 --disable-gif) _gif=no ;;
891 --enable-gl) _gl=yes ;;
892 --disable-gl) _gl=no ;;
893 --enable-ggi) _ggi=yes ;;
894 --disable-ggi) _ggi=no ;;
895 --enable-ggiwmh) _ggiwmh=yes ;;
896 --disable-ggiwmh) _ggiwmh=no ;;
897 --enable-aa) _aa=yes ;;
898 --disable-aa) _aa=no ;;
899 --enable-caca) _caca=yes ;;
900 --disable-caca) _caca=no ;;
901 --enable-svga) _svga=yes ;;
902 --disable-svga) _svga=no ;;
903 --enable-vesa) _vesa=yes ;;
904 --disable-vesa) _vesa=no ;;
905 --enable-fbdev) _fbdev=yes ;;
906 --disable-fbdev) _fbdev=no ;;
907 --enable-dvb) _dvb=yes ;;
908 --disable-dvb) _dvb=no ;;
909 --enable-dvbhead) _dvbhead=yes ;;
910 --disable-dvbhead) _dvbhead=no ;;
911 --enable-dxr2) _dxr2=yes ;;
912 --disable-dxr2) _dxr2=no ;;
913 --enable-dxr3) _dxr3=yes ;;
914 --disable-dxr3) _dxr3=no ;;
915 --enable-ivtv) _ivtv=yes ;;
916 --disable-ivtv) _ivtv=no ;;
917 --enable-v4l2) _v4l2=yes ;;
918 --disable-v4l2) _v4l2=no ;;
919 --enable-iconv) _iconv=yes ;;
920 --disable-iconv) _iconv=no ;;
921 --enable-langinfo) _langinfo=yes ;;
922 --disable-langinfo) _langinfo=no ;;
923 --enable-rtc) _rtc=yes ;;
924 --disable-rtc) _rtc=no ;;
925 --enable-libdv) _libdv=yes ;;
926 --disable-libdv) _libdv=no ;;
927 --enable-ossaudio) _ossaudio=yes ;;
928 --disable-ossaudio) _ossaudio=no ;;
929 --enable-arts) _arts=yes ;;
930 --disable-arts) _arts=no ;;
931 --enable-esd) _esd=yes ;;
932 --disable-esd) _esd=no ;;
933 --enable-pulse) _pulse=yes ;;
934 --disable-pulse) _pulse=no ;;
935 --enable-jack) _jack=yes ;;
936 --disable-jack) _jack=no ;;
937 --enable-openal) _openal=yes ;;
938 --disable-openal) _openal=no ;;
939 --enable-dart) _dart=yes ;;
940 --disable-dart) _dart=no ;;
941 --enable-mad) _mad=yes ;;
942 --disable-mad) _mad=no ;;
943 --enable-mp3lame) _mp3lame=yes ;;
944 --disable-mp3lame) _mp3lame=no ;;
945 --enable-toolame) _toolame=yes ;;
946 --disable-toolame) _toolame=no ;;
947 --enable-twolame) _twolame=yes ;;
948 --disable-twolame) _twolame=no ;;
949 --enable-libcdio) _libcdio=yes ;;
950 --disable-libcdio) _libcdio=no ;;
951 --enable-liblzo) _liblzo=yes ;;
952 --disable-liblzo) _liblzo=no ;;
953 --enable-libvorbis) _libvorbis=yes ;;
954 --disable-libvorbis) _libvorbis=no ;;
955 --enable-speex) _speex=yes ;;
956 --disable-speex) _speex=no ;;
957 --enable-tremor) _tremor=yes ;;
958 --disable-tremor) _tremor=no ;;
959 --enable-tremor-internal) _tremor_internal=yes ;;
960 --disable-tremor-internal) _tremor_internal=no ;;
961 --enable-tremor-low) _tremor_low=yes ;;
962 --disable-tremor-low) _tremor_low=no ;;
963 --enable-theora) _theora=yes ;;
964 --disable-theora) _theora=no ;;
965 --enable-mp3lib) _mp3lib=yes ;;
966 --disable-mp3lib) _mp3lib=no ;;
967 --enable-liba52-internal) _liba52_internal=yes ;;
968 --disable-liba52-internal) _liba52_internal=no ;;
969 --enable-liba52) _liba52=yes ;;
970 --disable-liba52) _liba52=no ;;
971 --enable-libdca) _libdca=yes ;;
972 --disable-libdca) _libdca=no ;;
973 --enable-libmpeg2) _libmpeg2=yes ;;
974 --disable-libmpeg2) _libmpeg2=no ;;
975 --enable-musepack) _musepack=yes ;;
976 --disable-musepack) _musepack=no ;;
977 --enable-faad) _faad=yes ;;
978 --disable-faad) _faad=no ;;
979 --enable-faad-internal) _faad_internal=yes ;;
980 --disable-faad-internal) _faad_internal=no ;;
981 --enable-faad-fixed) _faad_fixed=yes ;;
982 --disable-faad-fixed) _faad_fixed=no ;;
983 --enable-faac) _faac=yes ;;
984 --disable-faac) _faac=no ;;
985 --enable-ladspa) _ladspa=yes ;;
986 --disable-ladspa) _ladspa=no ;;
987 --enable-libbs2b) _libbs2b=yes ;;
988 --disable-libbs2b) _libbs2b=no ;;
989 --enable-xmms) _xmms=yes ;;
990 --disable-xmms) _xmms=no ;;
991 --enable-vcd) _vcd=yes ;;
992 --disable-vcd) _vcd=no ;;
993 --enable-dvdread) _dvdread=yes ;;
994 --disable-dvdread) _dvdread=no ;;
995 --enable-dvdread-internal) _dvdread_internal=yes ;;
996 --disable-dvdread-internal) _dvdread_internal=no ;;
997 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
998 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
999 --enable-dvdnav) _dvdnav=yes ;;
1000 --disable-dvdnav) _dvdnav=no ;;
1001 --enable-xanim) _xanim=yes ;;
1002 --disable-xanim) _xanim=no ;;
1003 --enable-real) _real=yes ;;
1004 --disable-real) _real=no ;;
1005 --enable-live) _live=yes ;;
1006 --disable-live) _live=no ;;
1007 --enable-nemesi) _nemesi=yes ;;
1008 --disable-nemesi) _nemesi=no ;;
1009 --enable-xinerama) _xinerama=yes ;;
1010 --disable-xinerama) _xinerama=no ;;
1011 --enable-mga) _mga=yes ;;
1012 --disable-mga) _mga=no ;;
1013 --enable-xmga) _xmga=yes ;;
1014 --disable-xmga) _xmga=no ;;
1015 --enable-vm) _vm=yes ;;
1016 --disable-vm) _vm=no ;;
1017 --enable-xf86keysym) _xf86keysym=yes ;;
1018 --disable-xf86keysym) _xf86keysym=no ;;
1019 --enable-mlib) _mlib=yes ;;
1020 --disable-mlib) _mlib=no ;;
1021 --enable-sunaudio) _sunaudio=yes ;;
1022 --disable-sunaudio) _sunaudio=no ;;
1023 --enable-sgiaudio) _sgiaudio=yes ;;
1024 --disable-sgiaudio) _sgiaudio=no ;;
1025 --enable-alsa) _alsa=yes ;;
1026 --disable-alsa) _alsa=no ;;
1027 --enable-tv) _tv=yes ;;
1028 --disable-tv) _tv=no ;;
1029 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1030 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1031 --enable-tv-v4l1) _tv_v4l1=yes ;;
1032 --disable-tv-v4l1) _tv_v4l1=no ;;
1033 --enable-tv-v4l2) _tv_v4l2=yes ;;
1034 --disable-tv-v4l2) _tv_v4l2=no ;;
1035 --enable-tv-dshow) _tv_dshow=yes ;;
1036 --disable-tv-dshow) _tv_dshow=no ;;
1037 --enable-radio) _radio=yes ;;
1038 --enable-radio-capture) _radio_capture=yes ;;
1039 --disable-radio-capture) _radio_capture=no ;;
1040 --disable-radio) _radio=no ;;
1041 --enable-radio-v4l) _radio_v4l=yes ;;
1042 --disable-radio-v4l) _radio_v4l=no ;;
1043 --enable-radio-v4l2) _radio_v4l2=yes ;;
1044 --disable-radio-v4l2) _radio_v4l2=no ;;
1045 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1046 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1047 --enable-pvr) _pvr=yes ;;
1048 --disable-pvr) _pvr=no ;;
1049 --enable-fastmemcpy) _fastmemcpy=yes ;;
1050 --disable-fastmemcpy) _fastmemcpy=no ;;
1051 --enable-network) _network=yes ;;
1052 --disable-network) _network=no ;;
1053 --enable-winsock2_h) _winsock2_h=yes ;;
1054 --disable-winsock2_h) _winsock2_h=no ;;
1055 --enable-smb) _smb=yes ;;
1056 --disable-smb) _smb=no ;;
1057 --enable-vidix) _vidix=yes ;;
1058 --disable-vidix) _vidix=no ;;
1059 --with-vidix-drivers=*)
1060 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1062 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1063 --enable-dhahelper) _dhahelper=yes ;;
1064 --disable-dhahelper) _dhahelper=no ;;
1065 --enable-svgalib_helper) _svgalib_helper=yes ;;
1066 --disable-svgalib_helper) _svgalib_helper=no ;;
1067 --enable-joystick) _joystick=yes ;;
1068 --disable-joystick) _joystick=no ;;
1069 --enable-xvid) _xvid=yes ;;
1070 --disable-xvid) _xvid=no ;;
1071 --enable-x264) _x264=yes ;;
1072 --disable-x264) _x264=no ;;
1073 --enable-libnut) _libnut=yes ;;
1074 --disable-libnut) _libnut=no ;;
1075 --enable-libavutil) _libavutil=yes ;;
1076 --disable-libavutil) _libavutil=no ;;
1077 --enable-libavcodec) _libavcodec=yes ;;
1078 --disable-libavcodec) _libavcodec=no ;;
1079 --enable-libavformat) _libavformat=yes ;;
1080 --disable-libavformat) _libavformat=no ;;
1081 --enable-libpostproc) _libpostproc=yes ;;
1082 --disable-libpostproc) _libpostproc=no ;;
1083 --enable-libswscale) _libswscale=yes ;;
1084 --disable-libswscale) _libswscale=no ;;
1085 --ffmpeg-source-dir=*)
1086 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1088 --enable-lirc) _lirc=yes ;;
1089 --disable-lirc) _lirc=no ;;
1090 --enable-lircc) _lircc=yes ;;
1091 --disable-lircc) _lircc=no ;;
1092 --enable-apple-remote) _apple_remote=yes ;;
1093 --disable-apple-remote) _apple_remote=no ;;
1094 --enable-apple-ir) _apple_ir=yes ;;
1095 --disable-apple-ir) _apple_ir=no ;;
1096 --enable-gui) _gui=yes ;;
1097 --disable-gui) _gui=no ;;
1098 --enable-gtk1) _gtk1=yes ;;
1099 --disable-gtk1) _gtk1=no ;;
1100 --enable-termcap) _termcap=yes ;;
1101 --disable-termcap) _termcap=no ;;
1102 --enable-termios) _termios=yes ;;
1103 --disable-termios) _termios=no ;;
1104 --enable-3dfx) _3dfx=yes ;;
1105 --disable-3dfx) _3dfx=no ;;
1106 --enable-s3fb) _s3fb=yes ;;
1107 --disable-s3fb) _s3fb=no ;;
1108 --enable-wii) _wii=yes ;;
1109 --disable-wii) _wii=no ;;
1110 --enable-tdfxfb) _tdfxfb=yes ;;
1111 --disable-tdfxfb) _tdfxfb=no ;;
1112 --disable-tdfxvid) _tdfxvid=no ;;
1113 --enable-tdfxvid) _tdfxvid=yes ;;
1114 --disable-xvr100) _xvr100=no ;;
1115 --enable-xvr100) _xvr100=yes ;;
1116 --disable-tga) _tga=no ;;
1117 --enable-tga) _tga=yes ;;
1118 --enable-directfb) _directfb=yes ;;
1119 --disable-directfb) _directfb=no ;;
1120 --enable-zr) _zr=yes ;;
1121 --disable-zr) _zr=no ;;
1122 --enable-bl) _bl=yes ;;
1123 --disable-bl) _bl=no ;;
1124 --enable-mtrr) _mtrr=yes ;;
1125 --disable-mtrr) _mtrr=no ;;
1126 --enable-largefiles) _largefiles=yes ;;
1127 --disable-largefiles) _largefiles=no ;;
1128 --enable-shm) _shm=yes ;;
1129 --disable-shm) _shm=no ;;
1130 --enable-select) _select=yes ;;
1131 --disable-select) _select=no ;;
1132 --enable-linux-devfs) _linux_devfs=yes ;;
1133 --disable-linux-devfs) _linux_devfs=no ;;
1134 --enable-cdparanoia) _cdparanoia=yes ;;
1135 --disable-cdparanoia) _cdparanoia=no ;;
1136 --enable-cddb) _cddb=yes ;;
1137 --disable-cddb) _cddb=no ;;
1138 --enable-big-endian) _big_endian=yes ;;
1139 --disable-big-endian) _big_endian=no ;;
1140 --enable-bitmap-font) _bitmap_font=yes ;;
1141 --disable-bitmap-font) _bitmap_font=no ;;
1142 --enable-freetype) _freetype=yes ;;
1143 --disable-freetype) _freetype=no ;;
1144 --enable-fontconfig) _fontconfig=yes ;;
1145 --disable-fontconfig) _fontconfig=no ;;
1146 --enable-unrarexec) _unrar_exec=yes ;;
1147 --disable-unrarexec) _unrar_exec=no ;;
1148 --enable-ftp) _ftp=yes ;;
1149 --disable-ftp) _ftp=no ;;
1150 --enable-vstream) _vstream=yes ;;
1151 --disable-vstream) _vstream=no ;;
1152 --enable-pthreads) _pthreads=yes ;;
1153 --disable-pthreads) _pthreads=no ;;
1154 --enable-w32threads) _w32threads=yes ;;
1155 --disable-w32threads) _w32threads=no ;;
1156 --enable-ass) _ass=yes ;;
1157 --disable-ass) _ass=no ;;
1158 --enable-rpath) _rpath=yes ;;
1159 --disable-rpath) _rpath=no ;;
1161 --enable-fribidi) _fribidi=yes ;;
1162 --disable-fribidi) _fribidi=no ;;
1164 --enable-enca) _enca=yes ;;
1165 --disable-enca) _enca=no ;;
1167 --enable-inet6) _inet6=yes ;;
1168 --disable-inet6) _inet6=no ;;
1170 --enable-gethostbyname2) _gethostbyname2=yes ;;
1171 --disable-gethostbyname2) _gethostbyname2=no ;;
1173 --enable-dga1) _dga1=yes ;;
1174 --disable-dga1) _dga1=no ;;
1175 --enable-dga2) _dga2=yes ;;
1176 --disable-dga2) _dga2=no ;;
1178 --enable-menu) _menu=yes ;;
1179 --disable-menu) _menu=no ;;
1181 --enable-qtx) _qtx=yes ;;
1182 --disable-qtx) _qtx=no ;;
1184 --enable-coreaudio) _coreaudio=yes ;;
1185 --disable-coreaudio) _coreaudio=no ;;
1186 --enable-corevideo) _corevideo=yes ;;
1187 --disable-corevideo) _corevideo=no ;;
1188 --enable-quartz) _quartz=yes ;;
1189 --disable-quartz) _quartz=no ;;
1190 --enable-macosx-finder) _macosx_finder=yes ;;
1191 --disable-macosx-finder) _macosx_finder=no ;;
1192 --enable-macosx-bundle) _macosx_bundle=yes;;
1193 --disable-macosx-bundle) _macosx_bundle=no;;
1195 --enable-maemo) _maemo=yes ;;
1196 --disable-maemo) _maemo=no ;;
1198 --enable-sortsub) _sortsub=yes ;;
1199 --disable-sortsub) _sortsub=no ;;
1201 --enable-crash-debug) _crash_debug=yes ;;
1202 --disable-crash-debug) _crash_debug=no ;;
1203 --enable-sighandler) _sighandler=yes ;;
1204 --disable-sighandler) _sighandler=no ;;
1205 --enable-win32dll) _win32dll=yes ;;
1206 --disable-win32dll) _win32dll=no ;;
1208 --enable-sse) _sse=yes ;;
1209 --disable-sse) _sse=no ;;
1210 --enable-sse2) _sse2=yes ;;
1211 --disable-sse2) _sse2=no ;;
1212 --enable-ssse3) _ssse3=yes ;;
1213 --disable-ssse3) _ssse3=no ;;
1214 --enable-mmxext) _mmxext=yes ;;
1215 --disable-mmxext) _mmxext=no ;;
1216 --enable-3dnow) _3dnow=yes ;;
1217 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1218 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1219 --disable-3dnowext) _3dnowext=no ;;
1220 --enable-cmov) _cmov=yes ;;
1221 --disable-cmov) _cmov=no ;;
1222 --enable-fast-cmov) _fast_cmov=yes ;;
1223 --disable-fast-cmov) _fast_cmov=no ;;
1224 --enable-altivec) _altivec=yes ;;
1225 --disable-altivec) _altivec=no ;;
1226 --enable-armv5te) _armv5te=yes ;;
1227 --disable-armv5te) _armv5te=no ;;
1228 --enable-armv6) _armv6=yes ;;
1229 --disable-armv6) _armv6=no ;;
1230 --enable-armv6t2) _armv6t2=yes ;;
1231 --disable-armv6t2) _armv6t2=no ;;
1232 --enable-armvfp) _armvfp=yes ;;
1233 --disable-armvfp) _armvfp=no ;;
1234 --enable-neon) neon=yes ;;
1235 --disable-neon) neon=no ;;
1236 --enable-iwmmxt) _iwmmxt=yes ;;
1237 --disable-iwmmxt) _iwmmxt=no ;;
1238 --enable-mmx) _mmx=yes ;;
1239 --disable-mmx) # 3Dnow! and MMX2 require MMX
1240 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1243 echo "Unknown parameter: $ac_option"
1244 exit 1
1247 esac
1248 done
1250 if test "$_gui" = yes ; then
1251 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1252 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1255 # Atmos: moved this here, to be correct, if --prefix is specified
1256 test -z "$_bindir" && _bindir="$_prefix/bin"
1257 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1258 test -z "$_mandir" && _mandir="$_prefix/share/man"
1259 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1260 test -z "$_libdir" && _libdir="$_prefix/lib"
1262 # Determine our OS name and CPU architecture
1263 if test -z "$_target" ; then
1264 # OS name
1265 system_name=$(uname -s 2>&1)
1266 case "$system_name" in
1267 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1269 Haiku)
1270 system_name=BeOS
1272 IRIX*)
1273 system_name=IRIX
1275 GNU/kFreeBSD)
1276 system_name=FreeBSD
1278 HP-UX*)
1279 system_name=HP-UX
1281 [cC][yY][gG][wW][iI][nN]*)
1282 system_name=CYGWIN
1284 MINGW32*)
1285 system_name=MINGW32
1287 OS/2*)
1288 system_name=OS/2
1291 system_name="$system_name-UNKNOWN"
1293 esac
1296 # host's CPU/instruction set
1297 host_arch=$(uname -p 2>&1)
1298 case "$host_arch" in
1299 i386|sparc|ppc|alpha|arm|mips|vax)
1301 powerpc) # Darwin returns 'powerpc'
1302 host_arch=ppc
1304 *) # uname -p on Linux returns 'unknown' for the processor type,
1305 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1307 # Maybe uname -m (machine hardware name) returns something we
1308 # recognize.
1310 # x86/x86pc is used by QNX
1311 case "$(uname -m 2>&1)" in
1312 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 ;;
1313 ia64) host_arch=ia64 ;;
1314 macppc|ppc) host_arch=ppc ;;
1315 ppc64) host_arch=ppc64 ;;
1316 alpha) host_arch=alpha ;;
1317 sparc) host_arch=sparc ;;
1318 sparc64) host_arch=sparc64 ;;
1319 parisc*|hppa*|9000*) host_arch=hppa ;;
1320 arm*|zaurus|cats) host_arch=arm ;;
1321 sh3|sh4|sh4a) host_arch=sh ;;
1322 s390) host_arch=s390 ;;
1323 s390x) host_arch=s390x ;;
1324 *mips*) host_arch=mips ;;
1325 vax) host_arch=vax ;;
1326 xtensa*) host_arch=xtensa ;;
1327 *) host_arch=UNKNOWN ;;
1328 esac
1330 esac
1331 else # if test -z "$_target"
1332 system_name=$(echo $_target | cut -d '-' -f 2)
1333 case "$(echo $system_name | tr A-Z a-z)" in
1334 linux) system_name=Linux ;;
1335 freebsd) system_name=FreeBSD ;;
1336 gnu/kfreebsd) system_name=FreeBSD ;;
1337 netbsd) system_name=NetBSD ;;
1338 bsd/os) system_name=BSD/OS ;;
1339 openbsd) system_name=OpenBSD ;;
1340 dragonfly) system_name=DragonFly ;;
1341 sunos) system_name=SunOS ;;
1342 qnx) system_name=QNX ;;
1343 morphos) system_name=MorphOS ;;
1344 amigaos) system_name=AmigaOS ;;
1345 mingw32msvc) system_name=MINGW32 ;;
1346 esac
1347 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1348 host_arch=$(echo $_target | cut -d '-' -f 1)
1349 if test $(echo $host_arch) != "x86_64" ; then
1350 host_arch=$(echo $host_arch | tr '_' '-')
1354 extra_cflags="-I. $extra_cflags"
1355 _timer=timer-linux.c
1356 _getch=getch2.c
1357 if freebsd ; then
1358 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1359 extra_cflags="$extra_cflags -I/usr/local/include"
1362 if netbsd || dragonfly ; then
1363 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1364 extra_cflags="$extra_cflags -I/usr/pkg/include"
1367 if darwin; then
1368 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1369 _timer=timer-darwin.c
1372 if aix ; then
1373 extra_ldflags="$extra_ldflags -lC"
1376 if irix ; then
1377 _ranlib='ar -r'
1378 elif linux ; then
1379 _ranlib='true'
1382 if win32 ; then
1383 _exesuf=".exe"
1384 # -lwinmm is always needed for osdep/timer-win2.c
1385 extra_ldflags="$extra_ldflags -lwinmm"
1386 _pe_executable=yes
1387 _timer=timer-win2.c
1388 _priority=yes
1389 def_dos_paths="#define HAVE_DOS_PATHS 1"
1390 def_priority="#define CONFIG_PRIORITY 1"
1393 if mingw32 ; then
1394 _getch=getch2-win.c
1395 _need_shmem=no
1398 if amigaos ; then
1399 _select=no
1400 _sighandler=no
1401 _stream_cache=no
1402 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1403 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1406 if qnx ; then
1407 extra_ldflags="$extra_ldflags -lph"
1410 if os2 ; then
1411 _exesuf=".exe"
1412 _getch=getch2-os2.c
1413 _need_shmem=no
1414 _priority=yes
1415 def_dos_paths="#define HAVE_DOS_PATHS 1"
1416 def_priority="#define CONFIG_PRIORITY 1"
1419 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1420 test "$I" && break
1421 done
1424 TMPLOG="configure.log"
1425 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1426 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1427 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1428 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1429 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1431 rm -f "$TMPLOG"
1432 echo configuration: $_configuration > "$TMPLOG"
1433 echo >> "$TMPLOG"
1436 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1437 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1441 # Checking CC version...
1442 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1443 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1444 echocheck "$_cc version"
1445 cc_vendor=intel
1446 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1447 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1448 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1449 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1450 # TODO verify older icc/ecc compatibility
1451 case $cc_version in
1453 cc_version="v. ?.??, bad"
1454 cc_fail=yes
1456 10.1|11.0|11.1)
1457 cc_version="$cc_version, ok"
1460 cc_version="$cc_version, bad"
1461 cc_fail=yes
1463 esac
1464 echores "$cc_version"
1465 else
1466 for _cc in "$_cc" cc gcc ; do
1467 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1468 if test "$cc_name_tmp" = "gcc"; then
1469 cc_name=$cc_name_tmp
1470 echocheck "$_cc version"
1471 cc_vendor=gnu
1472 cc_version=$($_cc -dumpversion 2>&1)
1473 case $cc_version in
1474 2.96*)
1475 cc_fail=yes
1478 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1479 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1480 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1482 esac
1483 echores "$cc_version"
1484 break
1486 done
1487 fi # icc
1488 test "$cc_fail" = yes && die "unsupported compiler version"
1490 if test -z "$_target" && x86 ; then
1491 cat > $TMPC << EOF
1492 int main(void) {
1493 int test[(int)sizeof(char *)-7];
1494 return 0;
1497 cc_check && host_arch=x86_64 || host_arch=i386
1500 echo "Detected operating system: $system_name"
1501 echo "Detected host architecture: $host_arch"
1503 echocheck "host cc"
1504 test "$_host_cc" || _host_cc=$_cc
1505 echores $_host_cc
1507 echocheck "cross compilation"
1508 if test $_cross_compile = auto ; then
1509 cat > $TMPC << EOF
1510 int main(void) { return 0; }
1512 _cross_compile=yes
1513 cc_check && "$TMPEXE" && _cross_compile=no
1515 echores $_cross_compile
1517 if test $_cross_compile = yes; then
1518 tmp_run() {
1519 return 0
1523 # ---
1525 # now that we know what compiler should be used for compilation, try to find
1526 # out which assembler is used by the $_cc compiler
1527 if test "$_as" = auto ; then
1528 _as=$($_cc -print-prog-name=as)
1529 test -z "$_as" && _as=as
1532 if test "$_nm" = auto ; then
1533 _nm=$($_cc -print-prog-name=nm)
1534 test -z "$_nm" && _nm=nm
1537 # XXX: this should be ok..
1538 _cpuinfo="echo"
1540 if test "$_runtime_cpudetection" = no ; then
1542 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1543 # FIXME: Remove the cygwin check once AMD CPUs are supported
1544 if test -r /proc/cpuinfo && ! cygwin; then
1545 # Linux with /proc mounted, extract CPU information from it
1546 _cpuinfo="cat /proc/cpuinfo"
1547 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1548 # FreeBSD with Linux emulation /proc mounted,
1549 # extract CPU information from it
1550 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1551 elif darwin && ! x86 ; then
1552 # use hostinfo on Darwin
1553 _cpuinfo="hostinfo"
1554 elif aix; then
1555 # use 'lsattr' on AIX
1556 _cpuinfo="lsattr -E -l proc0 -a type"
1557 elif x86; then
1558 # all other OSes try to extract CPU information from a small helper
1559 # program cpuinfo instead
1560 $_cc -o cpuinfo$_exesuf cpuinfo.c
1561 _cpuinfo="./cpuinfo$_exesuf"
1564 if x86 ; then
1565 # gather more CPU information
1566 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1567 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1568 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1569 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1570 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1572 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1574 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1575 -e s/xmm/sse/ -e s/kni/sse/)
1577 for ext in $pparam ; do
1578 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1579 done
1581 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1582 test $_sse = kernel_check && _mmxext=kernel_check
1584 echocheck "CPU vendor"
1585 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1587 echocheck "CPU type"
1588 echores "$pname"
1591 fi # test "$_runtime_cpudetection" = no
1593 if x86 && test "$_runtime_cpudetection" = no ; then
1594 extcheck() {
1595 if test "$1" = kernel_check ; then
1596 echocheck "kernel support of $2"
1597 cat > $TMPC <<EOF
1598 #include <stdlib.h>
1599 #include <signal.h>
1600 void catch() { exit(1); }
1601 int main(void) {
1602 signal(SIGILL, catch);
1603 __asm__ volatile ("$3":::"memory"); return 0;
1607 if cc_check && tmp_run ; then
1608 eval _$2=yes
1609 echores "yes"
1610 _optimizing="$_optimizing $2"
1611 return 0
1612 else
1613 eval _$2=no
1614 echores "failed"
1615 echo "It seems that your kernel does not correctly support $2."
1616 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1617 return 1
1620 return 0
1623 extcheck $_mmx "mmx" "emms"
1624 extcheck $_mmxext "mmxext" "sfence"
1625 extcheck $_3dnow "3dnow" "femms"
1626 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1627 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1628 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1629 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1630 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1632 echocheck "mtrr support"
1633 if test "$_mtrr" = kernel_check ; then
1634 _mtrr="yes"
1635 _optimizing="$_optimizing mtrr"
1637 echores "$_mtrr"
1639 if test "$_gcc3_ext" != ""; then
1640 # if we had to disable sse/sse2 because the active kernel does not
1641 # support this instruction set extension, we also have to tell
1642 # gcc3 to not generate sse/sse2 instructions for normal C code
1643 cat > $TMPC << EOF
1644 int main(void) { return 0; }
1646 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1652 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1653 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1654 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1655 case "$host_arch" in
1656 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1657 _arch='X86 X86_32'
1658 _target_arch="ARCH_X86 = yes"
1659 _target_subarch="ARCH_X86_32 = yes"
1660 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1661 iproc=486
1662 proc=i486
1665 if test "$_runtime_cpudetection" = no ; then
1666 case "$pvendor" in
1667 AuthenticAMD)
1668 case "$pfamily" in
1669 3) proc=i386 iproc=386 ;;
1670 4) proc=i486 iproc=486 ;;
1671 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1672 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1673 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1674 proc=k6-3
1675 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1676 proc=geode
1677 elif test "$pmodel" -ge 8; then
1678 proc=k6-2
1679 elif test "$pmodel" -ge 6; then
1680 proc=k6
1681 else
1682 proc=i586
1685 6) iproc=686
1686 # It's a bit difficult to determine the correct type of Family 6
1687 # AMD CPUs just from their signature. Instead, we check directly
1688 # whether it supports SSE.
1689 if test "$_sse" = yes; then
1690 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1691 proc=athlon-xp
1692 else
1693 # Again, gcc treats athlon and athlon-tbird similarly.
1694 proc=athlon
1697 15) iproc=686
1698 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1699 # caught and remedied in the optimization tests below.
1700 proc=k8
1703 *) proc=k8 iproc=686 ;;
1704 esac
1706 GenuineIntel)
1707 case "$pfamily" in
1708 3) proc=i386 iproc=386 ;;
1709 4) proc=i486 iproc=486 ;;
1710 5) iproc=586
1711 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1712 proc=pentium-mmx # 4 is desktop, 8 is mobile
1713 else
1714 proc=i586
1717 6) iproc=686
1718 if test "$pmodel" -ge 15; then
1719 proc=core2
1720 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1721 proc=pentium-m
1722 elif test "$pmodel" -ge 7; then
1723 proc=pentium3
1724 elif test "$pmodel" -ge 3; then
1725 proc=pentium2
1726 else
1727 proc=i686
1730 15) iproc=686
1731 # A nocona in 32-bit mode has no more capabilities than a prescott.
1732 if test "$pmodel" -ge 3; then
1733 proc=prescott
1734 else
1735 proc=pentium4
1737 test $_fast_cmov = "auto" && _fast_cmov=no
1739 *) proc=prescott iproc=686 ;;
1740 esac
1742 CentaurHauls)
1743 case "$pfamily" in
1744 5) iproc=586
1745 if test "$pmodel" -ge 8; then
1746 proc=winchip2
1747 elif test "$pmodel" -ge 4; then
1748 proc=winchip-c6
1749 else
1750 proc=i586
1753 6) iproc=686
1754 if test "$pmodel" -ge 9; then
1755 proc=c3-2
1756 else
1757 proc=c3
1758 iproc=586
1761 *) proc=i686 iproc=i686 ;;
1762 esac
1764 unknown)
1765 case "$pfamily" in
1766 3) proc=i386 iproc=386 ;;
1767 4) proc=i486 iproc=486 ;;
1768 *) proc=i586 iproc=586 ;;
1769 esac
1772 proc=i586 iproc=586 ;;
1773 esac
1774 fi # test "$_runtime_cpudetection" = no
1777 # check that gcc supports our CPU, if not, fall back to earlier ones
1778 # LGB: check -mcpu and -march swithing step by step with enabling
1779 # to fall back till 386.
1781 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1783 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1784 cpuopt=-mtune
1785 else
1786 cpuopt=-mcpu
1789 echocheck "GCC & CPU optimization abilities"
1790 cat > $TMPC << EOF
1791 int main(void) { return 0; }
1793 if test "$_runtime_cpudetection" = no ; then
1794 cc_check -march=native && proc=native
1795 if test "$proc" = "k8"; then
1796 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1798 if test "$proc" = "athlon-xp"; then
1799 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1801 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1802 cc_check -march=$proc $cpuopt=$proc || proc=k6
1804 if test "$proc" = "k6" || test "$proc" = "c3"; then
1805 if ! cc_check -march=$proc $cpuopt=$proc; then
1806 if cc_check -march=i586 $cpuopt=i686; then
1807 proc=i586-i686
1808 else
1809 proc=i586
1813 if test "$proc" = "prescott" ; then
1814 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1816 if test "$proc" = "core2" ; then
1817 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1819 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
1820 cc_check -march=$proc $cpuopt=$proc || proc=i686
1822 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1823 cc_check -march=$proc $cpuopt=$proc || proc=i586
1825 if test "$proc" = "i586"; then
1826 cc_check -march=$proc $cpuopt=$proc || proc=i486
1828 if test "$proc" = "i486" ; then
1829 cc_check -march=$proc $cpuopt=$proc || proc=i386
1831 if test "$proc" = "i386" ; then
1832 cc_check -march=$proc $cpuopt=$proc || proc=error
1834 if test "$proc" = "error" ; then
1835 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1836 _mcpu=""
1837 _march=""
1838 _optimizing=""
1839 elif test "$proc" = "i586-i686"; then
1840 _march="-march=i586"
1841 _mcpu="$cpuopt=i686"
1842 _optimizing="$proc"
1843 else
1844 _march="-march=$proc"
1845 _mcpu="$cpuopt=$proc"
1846 _optimizing="$proc"
1848 else # if test "$_runtime_cpudetection" = no
1849 _mcpu="$cpuopt=generic"
1850 # at least i486 required, for bswap instruction
1851 _march="-march=i486"
1852 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1853 cc_check $_mcpu || _mcpu=""
1854 cc_check $_march $_mcpu || _march=""
1857 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1858 ## autodetected mcpu/march parameters
1859 if test "$_target" ; then
1860 # TODO: it may be a good idea to check GCC and fall back in all cases
1861 if test "$host_arch" = "i586-i686"; then
1862 _march="-march=i586"
1863 _mcpu="$cpuopt=i686"
1864 else
1865 _march="-march=$host_arch"
1866 _mcpu="$cpuopt=$host_arch"
1869 proc="$host_arch"
1871 case "$proc" in
1872 i386) iproc=386 ;;
1873 i486) iproc=486 ;;
1874 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1875 i686|athlon*|pentium*) iproc=686 ;;
1876 *) iproc=586 ;;
1877 esac
1880 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1881 _fast_cmov="yes"
1882 else
1883 _fast_cmov="no"
1886 echores "$proc"
1889 ia64)
1890 _arch='IA64'
1891 _target_arch='ARCH_IA64 = yes'
1892 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1893 iproc='ia64'
1896 x86_64|amd64)
1897 _arch='X86 X86_64'
1898 _target_subarch='ARCH_X86_64 = yes'
1899 _target_arch="ARCH_X86 = yes"
1900 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1901 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1902 iproc='x86_64'
1904 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1905 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1906 cpuopt=-mtune
1907 else
1908 cpuopt=-mcpu
1910 test $_fast_cmov = "auto" && _fast_cmov=yes
1911 if test "$_runtime_cpudetection" = no ; then
1912 case "$pvendor" in
1913 AuthenticAMD)
1914 proc=k8;;
1915 GenuineIntel)
1916 case "$pfamily" in
1917 6) proc=core2;;
1919 # 64-bit prescotts exist, but as far as GCC is concerned they
1920 # have the same capabilities as a nocona.
1921 proc=nocona
1923 esac
1926 proc=error;;
1927 esac
1928 fi # test "$_runtime_cpudetection" = no
1930 echocheck "GCC & CPU optimization abilities"
1931 cat > $TMPC << EOF
1932 int main(void) { return 0; }
1934 # This is a stripped-down version of the i386 fallback.
1935 if test "$_runtime_cpudetection" = no ; then
1936 cc_check -march=native && proc=native
1937 # --- AMD processors ---
1938 if test "$proc" = "k8"; then
1939 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1941 # This will fail if gcc version < 3.3, which is ok because earlier
1942 # versions don't really support 64-bit on amd64.
1943 # Is this a valid assumption? -Corey
1944 if test "$proc" = "athlon-xp"; then
1945 cc_check -march=$proc $cpuopt=$proc || proc=error
1947 # --- Intel processors ---
1948 if test "$proc" = "core2"; then
1949 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1951 if test "$proc" = "nocona"; then
1952 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1954 if test "$proc" = "pentium4"; then
1955 cc_check -march=$proc $cpuopt=$proc || proc=error
1958 _march="-march=$proc"
1959 _mcpu="$cpuopt=$proc"
1960 if test "$proc" = "error" ; then
1961 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1962 _mcpu=""
1963 _march=""
1965 else # if test "$_runtime_cpudetection" = no
1966 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1967 _march="-march=x86-64"
1968 _mcpu="$cpuopt=generic"
1969 cc_check $_mcpu || _mcpu="x86-64"
1970 cc_check $_mcpu || _mcpu=""
1971 cc_check $_march $_mcpu || _march=""
1974 _optimizing=""
1976 echores "$proc"
1979 sparc|sparc64)
1980 _arch='SPARC'
1981 _target_arch='ARCH_SPARC = yes'
1982 iproc='sparc'
1983 if test "$host_arch" = "sparc64" ; then
1984 _vis='yes'
1985 proc='ultrasparc'
1986 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1987 elif sunos ; then
1988 echocheck "CPU type"
1989 karch=$(uname -m)
1990 case "$(echo $karch)" in
1991 sun4) proc=v7 ;;
1992 sun4c) proc=v7 ;;
1993 sun4d) proc=v8 ;;
1994 sun4m) proc=v8 ;;
1995 sun4u) proc=ultrasparc _vis='yes' ;;
1996 sun4v) proc=v9 ;;
1997 *) proc=v8 ;;
1998 esac
1999 echores "$proc"
2000 else
2001 proc=v8
2003 _mcpu="-mcpu=$proc"
2004 _optimizing="$proc"
2007 arm|armv4l|armv5tel)
2008 _arch='ARM'
2009 _target_arch='ARCH_ARM = yes'
2010 iproc='arm'
2013 avr32)
2014 _arch='AVR32'
2015 _target_arch='ARCH_AVR32 = yes'
2016 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2017 iproc='avr32'
2020 sh|sh4)
2021 _arch='SH4'
2022 _target_arch='ARCH_SH4 = yes'
2023 iproc='sh4'
2026 ppc|ppc64|powerpc|powerpc64)
2027 _arch='PPC'
2028 def_dcbzl='#define HAVE_DCBZL 0'
2029 _target_arch='ARCH_PPC = yes'
2030 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2031 iproc='ppc'
2033 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2034 _arch='PPC PPC64'
2035 _target_subarch='ARCH_PPC64 = yes'
2036 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2038 echocheck "CPU type"
2039 case $system_name in
2040 Linux)
2041 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2042 if test -n "$($_cpuinfo | grep altivec)"; then
2043 test $_altivec = auto && _altivec=yes
2046 Darwin)
2047 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2048 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2049 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2050 test $_altivec = auto && _altivec=yes
2053 NetBSD)
2054 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2055 case $cc_version in
2056 2*|3.0*|3.1*|3.2*|3.3*)
2059 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2060 test $_altivec = auto && _altivec=yes
2063 esac
2065 AIX)
2066 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2068 esac
2069 if test "$_altivec" = yes; then
2070 echores "$proc altivec"
2071 else
2072 _altivec=no
2073 echores "$proc"
2076 echocheck "GCC & CPU optimization abilities"
2078 if test -n "$proc"; then
2079 case "$proc" in
2080 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2081 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2082 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2083 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2084 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2085 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2086 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2087 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2088 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2089 *) ;;
2090 esac
2091 # gcc 3.1(.1) and up supports 7400 and 7450
2092 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2093 case "$proc" in
2094 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2095 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2096 *) ;;
2097 esac
2099 # gcc 3.2 and up supports 970
2100 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2101 case "$proc" in
2102 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2103 def_dcbzl='#define HAVE_DCBZL 1' ;;
2104 *) ;;
2105 esac
2107 # gcc 3.3 and up supports POWER4
2108 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2109 case "$proc" in
2110 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2111 *) ;;
2112 esac
2114 # gcc 3.4 and up supports 440*
2115 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2116 case "$proc" in
2117 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2118 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2119 *) ;;
2120 esac
2122 # gcc 4.0 and up supports POWER5
2123 if test "$_cc_major" -ge "4"; then
2124 case "$proc" in
2125 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2126 *) ;;
2127 esac
2131 if test -n "$_mcpu"; then
2132 _optimizing=$(echo $_mcpu | cut -c 8-)
2133 echores "$_optimizing"
2134 else
2135 echores "none"
2140 alpha*)
2141 _arch='ALPHA'
2142 _target_arch='ARCH_ALPHA = yes'
2143 iproc='alpha'
2144 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2146 echocheck "CPU type"
2147 cat > $TMPC << EOF
2148 int main(void) {
2149 unsigned long ver, mask;
2150 __asm__ ("implver %0" : "=r" (ver));
2151 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2152 printf("%ld-%x\n", ver, ~mask);
2153 return 0;
2156 $_cc -o "$TMPEXE" "$TMPC"
2157 case $("$TMPEXE") in
2159 0-0) proc="ev4"; _mvi="0";;
2160 1-0) proc="ev5"; _mvi="0";;
2161 1-1) proc="ev56"; _mvi="0";;
2162 1-101) proc="pca56"; _mvi="1";;
2163 2-303) proc="ev6"; _mvi="1";;
2164 2-307) proc="ev67"; _mvi="1";;
2165 2-1307) proc="ev68"; _mvi="1";;
2166 esac
2167 echores "$proc"
2169 echocheck "GCC & CPU optimization abilities"
2170 if test "$proc" = "ev68" ; then
2171 cc_check -mcpu=$proc || proc=ev67
2173 if test "$proc" = "ev67" ; then
2174 cc_check -mcpu=$proc || proc=ev6
2176 _mcpu="-mcpu=$proc"
2177 echores "$proc"
2179 _optimizing="$proc"
2182 mips)
2183 _arch='SGI_MIPS'
2184 _target_arch='ARCH_SGI_MIPS = yes'
2185 iproc='sgi-mips'
2187 if irix ; then
2188 echocheck "CPU type"
2189 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2190 case "$(echo $proc)" in
2191 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2192 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2193 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2194 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2195 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2196 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2197 esac
2198 # gcc < 3.x does not support -mtune.
2199 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2200 _mcpu=''
2202 echores "$proc"
2207 hppa)
2208 _arch='PA_RISC'
2209 _target_arch='ARCH_PA_RISC = yes'
2210 iproc='PA-RISC'
2213 s390)
2214 _arch='S390'
2215 _target_arch='ARCH_S390 = yes'
2216 iproc='390'
2219 s390x)
2220 _arch='S390X'
2221 _target_arch='ARCH_S390X = yes'
2222 iproc='390x'
2225 vax)
2226 _arch='VAX'
2227 _target_arch='ARCH_VAX = yes'
2228 iproc='vax'
2231 xtensa)
2232 _arch='XTENSA'
2233 _target_arch='ARCH_XTENSA = yes'
2234 iproc='xtensa'
2237 generic)
2238 _arch='GENERIC'
2239 _target_arch='ARCH_GENERIC = yes'
2243 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2244 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2245 die "unsupported architecture $host_arch"
2247 esac # case "$host_arch" in
2249 if test "$_runtime_cpudetection" = yes ; then
2250 if x86 ; then
2251 test "$_cmov" != no && _cmov=yes
2252 x86_32 && _cmov=no
2253 test "$_mmx" != no && _mmx=yes
2254 test "$_3dnow" != no && _3dnow=yes
2255 test "$_3dnowext" != no && _3dnowext=yes
2256 test "$_mmxext" != no && _mmxext=yes
2257 test "$_sse" != no && _sse=yes
2258 test "$_sse2" != no && _sse2=yes
2259 test "$_ssse3" != no && _ssse3=yes
2260 test "$_mtrr" != no && _mtrr=yes
2262 if ppc; then
2263 _altivec=yes
2268 # endian testing
2269 echocheck "byte order"
2270 if test "$_big_endian" = auto ; then
2271 cat > $TMPC <<EOF
2272 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2273 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2274 int main(void) { return (int)ascii_name; }
2276 if cc_check ; then
2277 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2278 _big_endian=yes
2279 else
2280 _big_endian=no
2282 else
2283 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2286 if test "$_big_endian" = yes ; then
2287 _byte_order='big-endian'
2288 def_words_endian='#define WORDS_BIGENDIAN 1'
2289 def_bigendian='#define HAVE_BIGENDIAN 1'
2290 else
2291 _byte_order='little-endian'
2292 def_words_endian='#undef WORDS_BIGENDIAN'
2293 def_bigendian='#define HAVE_BIGENDIAN 0'
2295 echores "$_byte_order"
2298 echocheck "extern symbol prefix"
2299 cat > $TMPC << EOF
2300 int ff_extern;
2302 cc_check -c || die "Symbol mangling check failed."
2303 sym=$($_nm -P -g $TMPEXE)
2304 extern_prefix=${sym%%ff_extern*}
2305 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2306 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2307 echores $extern_prefix
2310 echocheck "assembler support of -pipe option"
2311 cat > $TMPC << EOF
2312 int main(void) { return 0; }
2314 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2317 echocheck "compiler support of named assembler arguments"
2318 _named_asm_args=yes
2319 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2320 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2321 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2322 _named_asm_args=no
2323 def_named_asm_args="#undef NAMED_ASM_ARGS"
2325 echores $_named_asm_args
2328 if darwin && test "$cc_vendor" = "gnu" ; then
2329 echocheck "GCC support of -mstackrealign"
2330 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2331 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2332 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2333 # wrong code with this flag, but this can be worked around by adding
2334 # -fno-unit-at-a-time as described in the blog post at
2335 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2336 cat > $TMPC << EOF
2337 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2338 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2340 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2341 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2342 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2343 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2344 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2347 # Checking for CFLAGS
2348 _install_strip="-s"
2349 if test "$_profile" != "" || test "$_debug" != "" ; then
2350 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2351 _install_strip=
2352 elif test -z "$CFLAGS" ; then
2353 if test "$cc_vendor" = "intel" ; then
2354 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2355 elif test "$cc_vendor" != "gnu" ; then
2356 CFLAGS="-O2 $_march $_mcpu $_pipe"
2357 else
2358 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2359 extra_ldflags="$extra_ldflags -ffast-math"
2361 else
2362 _warn_CFLAGS=yes
2365 cat > $TMPC << EOF
2366 int main(void) { return 0; }
2368 if test "$cc_vendor" = "gnu" ; then
2369 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2370 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2371 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2372 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2373 else
2374 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2377 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2380 if test -n "$LDFLAGS" ; then
2381 extra_ldflags="$extra_ldflags $LDFLAGS"
2382 _warn_CFLAGS=yes
2383 elif test "$cc_vendor" = "intel" ; then
2384 extra_ldflags="$extra_ldflags -i-static"
2386 if test -n "$CPPFLAGS" ; then
2387 extra_cflags="$extra_cflags $CPPFLAGS"
2388 _warn_CFLAGS=yes
2393 if x86_32 ; then
2394 # Checking assembler (_as) compatibility...
2395 # Added workaround for older as that reads from stdin by default - atmos
2396 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2397 echocheck "assembler ($_as $as_version)"
2399 _pref_as_version='2.9.1'
2400 echo 'nop' > $TMPS
2401 if test "$_mmx" = yes ; then
2402 echo 'emms' >> $TMPS
2404 if test "$_3dnow" = yes ; then
2405 _pref_as_version='2.10.1'
2406 echo 'femms' >> $TMPS
2408 if test "$_3dnowext" = yes ; then
2409 _pref_as_version='2.10.1'
2410 echo 'pswapd %mm0, %mm0' >> $TMPS
2412 if test "$_mmxext" = yes ; then
2413 _pref_as_version='2.10.1'
2414 echo 'movntq %mm0, (%eax)' >> $TMPS
2416 if test "$_sse" = yes ; then
2417 _pref_as_version='2.10.1'
2418 echo 'xorps %xmm0, %xmm0' >> $TMPS
2420 #if test "$_sse2" = yes ; then
2421 # _pref_as_version='2.11'
2422 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2424 if test "$_cmov" = yes ; then
2425 _pref_as_version='2.10.1'
2426 echo 'cmovb %eax, %ebx' >> $TMPS
2428 if test "$_ssse3" = yes ; then
2429 _pref_as_version='2.16.92'
2430 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2432 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2434 if test "$as_verc_fail" != yes ; then
2435 echores "ok"
2436 else
2437 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2438 echores "failed"
2439 die "obsolete binutils version"
2442 fi #if x86_32
2444 echocheck ".align is a power of two"
2445 if test "$_asmalign_pot" = auto ; then
2446 _asmalign_pot=no
2447 cat > $TMPC << EOF
2448 int main(void) { __asm__ (".align 3"); return 0; }
2450 cc_check && _asmalign_pot=yes
2452 if test "$_asmalign_pot" = "yes" ; then
2453 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2454 else
2455 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2457 echores $_asmalign_pot
2459 if x86 ; then
2460 echocheck "10 assembler operands"
2461 ten_operands=no
2462 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2463 cat > $TMPC << EOF
2464 int main(void) {
2465 int x=0;
2466 __asm__ volatile(
2468 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2470 return 0;
2473 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2474 echores $ten_operands
2476 echocheck "ebx availability"
2477 ebx_available=no
2478 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2479 cat > $TMPC << EOF
2480 int main(void) {
2481 int x;
2482 __asm__ volatile(
2483 "xor %0, %0"
2484 :"=b"(x)
2485 // just adding ebx to clobber list seems unreliable with some
2486 // compilers, e.g. Haiku's gcc 2.95
2488 // and the above check does not work for OSX 64 bit...
2489 __asm__ volatile("":::"%ebx");
2490 return 0;
2493 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2494 echores $ebx_available
2496 echocheck "PIC"
2497 pic=no
2498 cat > $TMPC << EOF
2499 int main(void) {
2500 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2501 #error PIC not enabled
2502 #endif
2503 return 0;
2506 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2507 echores $pic
2509 echocheck "yasm"
2510 if test -z "$YASMFLAGS" ; then
2511 if darwin ; then
2512 x86_64 && objformat="macho64" || objformat="macho"
2513 elif win32 ; then
2514 objformat="win32"
2515 else
2516 objformat="elf"
2518 # currently tested for Linux x86, x86_64
2519 YASMFLAGS="-f $objformat"
2520 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2521 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2522 case "$objformat" in
2523 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2524 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2525 esac
2526 else
2527 _warn_CFLAGS=yes
2530 echo "pabsw xmm0, xmm0" > $TMPS
2531 yasm_check || _yasm=""
2532 if test $_yasm ; then
2533 test "$_mmx" = "yes" && fft_mmx="yes"
2534 def_yasm='#define HAVE_YASM 1'
2535 _have_yasm="yes"
2536 echores "$_yasm"
2537 else
2538 def_yasm='#define HAVE_YASM 0'
2539 fft_mmx="no"
2540 _have_yasm="no"
2541 echores "no"
2544 echocheck "bswap"
2545 def_bswap='#define HAVE_BSWAP 0'
2546 echo 'bswap %eax' > $TMPS
2547 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2548 echores "$bswap"
2549 fi #if x86
2552 #FIXME: This should happen before the check for CFLAGS..
2553 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2554 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2556 # check if AltiVec is supported by the compiler, and how to enable it
2557 echocheck "GCC AltiVec flags"
2558 cat > $TMPC << EOF
2559 int main(void) { return 0; }
2561 if $(cc_check -maltivec -mabi=altivec) ; then
2562 _altivec_gcc_flags="-maltivec -mabi=altivec"
2563 # check if <altivec.h> should be included
2564 cat > $TMPC << EOF
2565 #include <altivec.h>
2566 int main(void) { return 0; }
2568 if $(cc_check $_altivec_gcc_flags) ; then
2569 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2570 inc_altivec_h='#include <altivec.h>'
2571 else
2572 cat > $TMPC << EOF
2573 int main(void) { return 0; }
2575 if $(cc_check -faltivec) ; then
2576 _altivec_gcc_flags="-faltivec"
2577 else
2578 _altivec=no
2579 _altivec_gcc_flags="none, AltiVec disabled"
2583 echores "$_altivec_gcc_flags"
2585 # check if the compiler supports braces for vector declarations
2586 cat > $TMPC << EOF
2587 $inc_altivec_h
2588 int main(void) { (vector int) {1}; return 0; }
2590 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2592 # Disable runtime cpudetection if we cannot generate AltiVec code or
2593 # AltiVec is disabled by the user.
2594 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2595 && _runtime_cpudetection=no
2597 # Show that we are optimizing for AltiVec (if enabled and supported).
2598 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2599 && _optimizing="$_optimizing altivec"
2601 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2602 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2605 if ppc ; then
2606 def_xform_asm='#define HAVE_XFORM_ASM 0'
2607 xform_asm=no
2608 echocheck "XFORM ASM support"
2609 cat > $TMPC << EOF
2610 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2612 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2613 echores "$xform_asm"
2616 if arm ; then
2617 echocheck "ARM pld instruction"
2618 cat > $TMPC << EOF
2619 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2621 pld=no
2622 cc_check && pld=yes
2623 echores "$pld"
2625 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2626 if test $_armv5te = "auto" ; then
2627 cat > $TMPC << EOF
2628 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2630 _armv5te=no
2631 cc_check && _armv5te=yes
2633 echores "$_armv5te"
2635 echocheck "ARMv6 (SIMD instructions)"
2636 if test $_armv6 = "auto" ; then
2637 cat > $TMPC << EOF
2638 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2640 _armv6=no
2641 cc_check && _armv6=yes
2643 echores "$_armv6"
2645 echocheck "ARMv6t2 (SIMD instructions)"
2646 if test $_armv6t2 = "auto" ; then
2647 cat > $TMPC << EOF
2648 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2650 _armv6t2=no
2651 cc_check && _armv6t2=yes
2653 echores "$_armv6"
2655 echocheck "ARM VFP"
2656 if test $_armvfp = "auto" ; then
2657 cat > $TMPC << EOF
2658 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2660 _armvfp=no
2661 cc_check && _armvfp=yes
2663 echores "$_armvfp"
2665 echocheck "ARM NEON"
2666 if test $neon = "auto" ; then
2667 cat > $TMPC << EOF
2668 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2670 neon=no
2671 cc_check && neon=yes
2673 echores "$neon"
2675 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2676 if test $_iwmmxt = "auto" ; then
2677 cat > $TMPC << EOF
2678 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2680 _iwmmxt=no
2681 cc_check && _iwmmxt=yes
2683 echores "$_iwmmxt"
2686 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2687 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2688 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2689 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2690 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2691 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2692 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2693 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2694 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2695 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2696 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2697 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2698 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2699 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2700 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2701 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2702 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2703 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2704 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2705 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2707 # Checking kernel version...
2708 if x86_32 && linux ; then
2709 _k_verc_problem=no
2710 kernel_version=$(uname -r 2>&1)
2711 echocheck "$system_name kernel version"
2712 case "$kernel_version" in
2713 '') kernel_version="?.??"; _k_verc_fail=yes;;
2714 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2715 _k_verc_problem=yes;;
2716 esac
2717 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2718 _k_verc_fail=yes
2720 if test "$_k_verc_fail" ; then
2721 echores "$kernel_version, fail"
2722 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2723 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2724 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2725 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2726 echo "2.2.x you must upgrade it to get SSE support!"
2727 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2728 else
2729 echores "$kernel_version, ok"
2733 ######################
2734 # MAIN TESTS GO HERE #
2735 ######################
2738 echocheck "-lposix"
2739 cat > $TMPC <<EOF
2740 int main(void) { return 0; }
2742 if cc_check -lposix ; then
2743 extra_ldflags="$extra_ldflags -lposix"
2744 echores "yes"
2745 else
2746 echores "no"
2749 echocheck "-lm"
2750 cat > $TMPC <<EOF
2751 int main(void) { return 0; }
2753 if cc_check -lm ; then
2754 _ld_lm="-lm"
2755 echores "yes"
2756 else
2757 _ld_lm=""
2758 echores "no"
2762 echocheck "langinfo"
2763 if test "$_langinfo" = auto ; then
2764 cat > $TMPC <<EOF
2765 #include <langinfo.h>
2766 int main(void) { nl_langinfo(CODESET); return 0; }
2768 _langinfo=no
2769 cc_check && _langinfo=yes
2771 if test "$_langinfo" = yes ; then
2772 def_langinfo='#define HAVE_LANGINFO 1'
2773 else
2774 def_langinfo='#undef HAVE_LANGINFO'
2776 echores "$_langinfo"
2779 echocheck "language"
2780 # Set preferred languages, "all" uses English as main language.
2781 test -z "$language" && language=$LINGUAS
2782 test -z "$language_doc" && language_doc=$language
2783 test -z "$language_man" && language_man=$language
2784 test -z "$language_msg" && language_msg=$language
2785 language_doc=$(echo $language_doc | tr , " ")
2786 language_man=$(echo $language_man | tr , " ")
2787 language_msg=$(echo $language_msg | tr , " ")
2789 test "$language_doc" = "all" && language_doc=$doc_lang_all
2790 test "$language_man" = "all" && language_man=$man_lang_all
2791 test "$language_msg" = "all" && language_msg=en
2793 # Prune non-existing translations from language lists.
2794 # Set message translation to the first available language.
2795 # Fall back on English.
2796 for lang in $language_doc ; do
2797 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2798 done
2799 language_doc=$tmp_language_doc
2800 test -z "$language_doc" && language_doc=en
2802 for lang in $language_man ; do
2803 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2804 done
2805 language_man=$tmp_language_man
2806 test -z "$language_man" && language_man=en
2808 for lang in $language_msg ; do
2809 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2810 done
2811 language_msg=$tmp_language_msg
2812 test -z "$language_msg" && language_msg=en
2813 _mp_help="help/help_mp-${language_msg}.h"
2814 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2817 echocheck "enable sighandler"
2818 if test "$_sighandler" = yes ; then
2819 def_sighandler='#define CONFIG_SIGHANDLER 1'
2820 else
2821 def_sighandler='#undef CONFIG_SIGHANDLER'
2823 echores "$_sighandler"
2825 echocheck "runtime cpudetection"
2826 if test "$_runtime_cpudetection" = yes ; then
2827 _optimizing="Runtime CPU-Detection enabled"
2828 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2829 else
2830 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2832 echores "$_runtime_cpudetection"
2835 echocheck "restrict keyword"
2836 for restrict_keyword in restrict __restrict __restrict__ ; do
2837 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2838 if cc_check; then
2839 def_restrict_keyword=$restrict_keyword
2840 break;
2842 done
2843 if [ -n "$def_restrict_keyword" ]; then
2844 echores "$def_restrict_keyword"
2845 else
2846 echores "none"
2848 # Avoid infinite recursion loop ("#define restrict restrict")
2849 if [ "$def_restrict_keyword" != "restrict" ]; then
2850 def_restrict_keyword="#define restrict $def_restrict_keyword"
2851 else
2852 def_restrict_keyword=""
2856 echocheck "__builtin_expect"
2857 # GCC branch prediction hint
2858 cat > $TMPC << EOF
2859 int foo(int a) {
2860 a = __builtin_expect(a, 10);
2861 return a == 10 ? 0 : 1;
2863 int main(void) { return foo(10) && foo(0); }
2865 _builtin_expect=no
2866 cc_check && _builtin_expect=yes
2867 if test "$_builtin_expect" = yes ; then
2868 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2869 else
2870 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2872 echores "$_builtin_expect"
2875 echocheck "kstat"
2876 cat > $TMPC << EOF
2877 #include <kstat.h>
2878 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2880 _kstat=no
2881 cc_check -lkstat && _kstat=yes
2882 if test "$_kstat" = yes ; then
2883 def_kstat="#define HAVE_LIBKSTAT 1"
2884 extra_ldflags="$extra_ldflags -lkstat"
2885 else
2886 def_kstat="#undef HAVE_LIBKSTAT"
2888 echores "$_kstat"
2891 echocheck "posix4"
2892 # required for nanosleep on some systems
2893 cat > $TMPC << EOF
2894 #include <time.h>
2895 int main(void) { (void) nanosleep(0, 0); return 0; }
2897 _posix4=no
2898 cc_check -lposix4 && _posix4=yes
2899 if test "$_posix4" = yes ; then
2900 extra_ldflags="$extra_ldflags -lposix4"
2902 echores "$_posix4"
2904 for func in llrint log2 lrint lrintf round roundf truncf; do
2905 echocheck $func
2906 cat > $TMPC << EOF
2907 #include <math.h>
2908 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2910 eval _$func=no
2911 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2912 if eval test "x\$_$func" = "xyes"; then
2913 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2914 echores yes
2915 else
2916 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2917 echores no
2919 done
2922 echocheck "mkstemp"
2923 cat > $TMPC << EOF
2924 #include <stdlib.h>
2925 int main(void) { char a; mkstemp(&a); return 0; }
2927 _mkstemp=no
2928 cc_check && _mkstemp=yes
2929 if test "$_mkstemp" = yes ; then
2930 def_mkstemp='#define HAVE_MKSTEMP 1'
2931 else
2932 def_mkstemp='#undef HAVE_MKSTEMP'
2934 echores "$_mkstemp"
2937 echocheck "nanosleep"
2938 # also check for nanosleep
2939 cat > $TMPC << EOF
2940 #include <time.h>
2941 int main(void) { (void) nanosleep(0, 0); return 0; }
2943 _nanosleep=no
2944 cc_check && _nanosleep=yes
2945 if test "$_nanosleep" = yes ; then
2946 def_nanosleep='#define HAVE_NANOSLEEP 1'
2947 else
2948 def_nanosleep='#undef HAVE_NANOSLEEP'
2950 echores "$_nanosleep"
2953 echocheck "socklib"
2954 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2955 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2956 cat > $TMPC << EOF
2957 #include <netdb.h>
2958 #include <sys/socket.h>
2959 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2961 _socklib=no
2962 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2963 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2964 done
2965 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2966 if test $_winsock2_h = auto ; then
2967 _winsock2_h=no
2968 cat > $TMPC << EOF
2969 #include <winsock2.h>
2970 int main(void) { (void) gethostbyname(0); return 0; }
2972 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2974 test "$_ld_sock" && _res_comment="using $_ld_sock"
2975 echores "$_socklib"
2978 if test $_winsock2_h = yes ; then
2979 _ld_sock="-lws2_32"
2980 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2981 else
2982 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2986 echocheck "arpa/inet.h"
2987 arpa_inet_h=no
2988 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2989 cat > $TMPC << EOF
2990 #include <arpa/inet.h>
2991 int main(void) { return 0; }
2993 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2994 echores "$arpa_inet_h"
2997 echocheck "inet_pton()"
2998 def_inet_pton='#define HAVE_INET_PTON 0'
2999 inet_pton=no
3000 cat > $TMPC << EOF
3001 #include <sys/types.h>
3002 #include <sys/socket.h>
3003 #include <arpa/inet.h>
3004 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3006 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3007 cc_check $_ld_tmp && inet_pton=yes && break
3008 done
3009 if test $inet_pton = yes ; then
3010 test $_ld_tmp && _res_comment="using $_ld_tmp"
3011 def_inet_pton='#define HAVE_INET_PTON 1'
3013 echores "$inet_pton"
3016 echocheck "inet_aton()"
3017 def_inet_aton='#define HAVE_INET_ATON 0'
3018 inet_aton=no
3019 cat > $TMPC << EOF
3020 #include <sys/types.h>
3021 #include <sys/socket.h>
3022 #include <arpa/inet.h>
3023 int main(void) { (void) inet_aton(0, 0); return 0; }
3025 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3026 cc_check $_ld_tmp && inet_aton=yes && break
3027 done
3028 if test $inet_aton = yes ; then
3029 test $_ld_tmp && _res_comment="using $_ld_tmp"
3030 def_inet_aton='#define HAVE_INET_ATON 1'
3032 echores "$inet_aton"
3035 echocheck "socklen_t"
3036 _socklen_t=no
3037 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3038 cat > $TMPC << EOF
3039 #include <$header>
3040 int main(void) { socklen_t v = 0; return v; }
3042 cc_check && _socklen_t=yes && break
3043 done
3044 if test "$_socklen_t" = yes ; then
3045 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3046 else
3047 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3049 echores "$_socklen_t"
3052 echocheck "closesocket()"
3053 _closesocket=no
3054 cat > $TMPC << EOF
3055 #include <winsock2.h>
3056 int main(void) { closesocket(~0); return 0; }
3058 cc_check $_ld_sock && _closesocket=yes
3059 if test "$_closesocket" = yes ; then
3060 def_closesocket='#define HAVE_CLOSESOCKET 1'
3061 else
3062 def_closesocket='#define HAVE_CLOSESOCKET 0'
3064 echores "$_closesocket"
3067 echocheck "network"
3068 test $_winsock2_h = no && test $inet_pton = no &&
3069 test $inet_aton = no && _network=no
3070 if test "$_network" = yes ; then
3071 def_network='#define CONFIG_NETWORK 1'
3072 extra_ldflags="$extra_ldflags $_ld_sock"
3073 _inputmodules="network $_inputmodules"
3074 else
3075 _noinputmodules="network $_noinputmodules"
3076 def_network='#undef CONFIG_NETWORK'
3077 _ftp=no
3079 echores "$_network"
3082 echocheck "inet6"
3083 if test "$_inet6" = auto ; then
3084 cat > $TMPC << EOF
3085 #include <sys/types.h>
3086 #if !defined(_WIN32) || defined(__CYGWIN__)
3087 #include <sys/socket.h>
3088 #include <netinet/in.h>
3089 #else
3090 #include <ws2tcpip.h>
3091 #endif
3092 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3094 _inet6=no
3095 if cc_check $_ld_sock ; then
3096 _inet6=yes
3099 if test "$_inet6" = yes ; then
3100 def_inet6='#define HAVE_AF_INET6 1'
3101 else
3102 def_inet6='#undef HAVE_AF_INET6'
3104 echores "$_inet6"
3107 echocheck "gethostbyname2"
3108 if test "$_gethostbyname2" = auto ; then
3109 cat > $TMPC << EOF
3110 #include <sys/types.h>
3111 #include <sys/socket.h>
3112 #include <netdb.h>
3113 int main(void) { gethostbyname2("", AF_INET); return 0; }
3115 _gethostbyname2=no
3116 if cc_check ; then
3117 _gethostbyname2=yes
3120 if test "$_gethostbyname2" = yes ; then
3121 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3122 else
3123 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3125 echores "$_gethostbyname2"
3128 echocheck "inttypes.h (required)"
3129 cat > $TMPC << EOF
3130 #include <inttypes.h>
3131 int main(void) { return 0; }
3133 _inttypes=no
3134 cc_check && _inttypes=yes
3135 echores "$_inttypes"
3137 if test "$_inttypes" = no ; then
3138 echocheck "bitypes.h (inttypes.h predecessor)"
3139 cat > $TMPC << EOF
3140 #include <sys/bitypes.h>
3141 int main(void) { return 0; }
3143 cc_check && _inttypes=yes
3144 if test "$_inttypes" = yes ; then
3145 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."
3146 else
3147 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3152 echocheck "int_fastXY_t in inttypes.h"
3153 cat > $TMPC << EOF
3154 #include <inttypes.h>
3155 int main(void) {
3156 volatile int_fast16_t v= 0;
3157 return v; }
3159 _fast_inttypes=no
3160 cc_check && _fast_inttypes=yes
3161 if test "$_fast_inttypes" = no ; then
3162 def_fast_inttypes='
3163 typedef signed char int_fast8_t;
3164 typedef signed int int_fast16_t;
3165 typedef signed int int_fast32_t;
3166 typedef signed long long int_fast64_t;
3167 typedef unsigned char uint_fast8_t;
3168 typedef unsigned int uint_fast16_t;
3169 typedef unsigned int uint_fast32_t;
3170 typedef unsigned long long uint_fast64_t;'
3172 echores "$_fast_inttypes"
3175 echocheck "malloc.h"
3176 cat > $TMPC << EOF
3177 #include <malloc.h>
3178 int main(void) { (void) malloc(0); return 0; }
3180 _malloc=no
3181 cc_check && _malloc=yes
3182 if test "$_malloc" = yes ; then
3183 def_malloc_h='#define HAVE_MALLOC_H 1'
3184 else
3185 def_malloc_h='#define HAVE_MALLOC_H 0'
3187 # malloc.h emits a warning in FreeBSD and OpenBSD
3188 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3189 echores "$_malloc"
3192 echocheck "memalign()"
3193 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3194 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3195 cat > $TMPC << EOF
3196 #include <malloc.h>
3197 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3199 _memalign=no
3200 cc_check && _memalign=yes
3201 if test "$_memalign" = yes ; then
3202 def_memalign='#define HAVE_MEMALIGN 1'
3203 else
3204 def_memalign='#define HAVE_MEMALIGN 0'
3205 def_map_memalign='#define memalign(a,b) malloc(b)'
3206 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3208 echores "$_memalign"
3211 echocheck "posix_memalign()"
3212 posix_memalign=no
3213 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3214 cat > $TMPC << EOF
3215 #define _XOPEN_SOURCE 600
3216 #include <stdlib.h>
3217 int main(void) { posix_memalign(NULL, 0, 0); }
3219 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3220 echores "$posix_memalign"
3223 echocheck "alloca.h"
3224 cat > $TMPC << EOF
3225 #include <alloca.h>
3226 int main(void) { (void) alloca(0); return 0; }
3228 _alloca=no
3229 cc_check && _alloca=yes
3230 if cc_check ; then
3231 def_alloca_h='#define HAVE_ALLOCA_H 1'
3232 else
3233 def_alloca_h='#undef HAVE_ALLOCA_H'
3235 echores "$_alloca"
3238 echocheck "fastmemcpy"
3239 if test "$_fastmemcpy" = yes ; then
3240 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3241 else
3242 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3244 echores "$_fastmemcpy"
3247 echocheck "mman.h"
3248 cat > $TMPC << EOF
3249 #include <sys/types.h>
3250 #include <sys/mman.h>
3251 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3253 _mman=no
3254 cc_check && _mman=yes
3255 if test "$_mman" = yes ; then
3256 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3257 else
3258 def_mman_h='#undef HAVE_SYS_MMAN_H'
3259 os2 && _need_mmap=yes
3261 echores "$_mman"
3263 cat > $TMPC << EOF
3264 #include <sys/types.h>
3265 #include <sys/mman.h>
3266 int main(void) { void *p = MAP_FAILED; return 0; }
3268 _mman_has_map_failed=no
3269 cc_check && _mman_has_map_failed=yes
3270 if test "$_mman_has_map_failed" = yes ; then
3271 def_mman_has_map_failed=''
3272 else
3273 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3276 echocheck "dynamic loader"
3277 cat > $TMPC << EOF
3278 #include <stddef.h>
3279 #include <dlfcn.h>
3280 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3282 _dl=no
3283 for _ld_tmp in "" "-ldl" ; do
3284 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3285 done
3286 if test "$_dl" = yes ; then
3287 def_dl='#define HAVE_LIBDL 1'
3288 else
3289 def_dl='#undef HAVE_LIBDL'
3291 echores "$_dl"
3294 echocheck "dynamic a/v plugins support"
3295 if test "$_dl" = no ; then
3296 _dynamic_plugins=no
3298 if test "$_dynamic_plugins" = yes ; then
3299 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3300 else
3301 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3303 echores "$_dynamic_plugins"
3306 def_threads='#define HAVE_THREADS 0'
3308 echocheck "pthread"
3309 if linux ; then
3310 THREAD_CFLAGS=-D_REENTRANT
3311 elif freebsd || netbsd || openbsd || bsdos ; then
3312 THREAD_CFLAGS=-D_THREAD_SAFE
3314 if test "$_pthreads" = auto ; then
3315 cat > $TMPC << EOF
3316 #include <pthread.h>
3317 void* func(void *arg) { return arg; }
3318 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3320 _pthreads=no
3321 if ! hpux ; then
3322 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3323 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3324 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3325 done
3328 if test "$_pthreads" = yes ; then
3329 test $_ld_pthread && _res_comment="using $_ld_pthread"
3330 def_pthreads='#define HAVE_PTHREADS 1'
3331 def_threads='#define HAVE_THREADS 1'
3332 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3333 else
3334 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3335 def_pthreads='#undef HAVE_PTHREADS'
3336 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3337 mingw32 || _win32dll=no
3339 echores "$_pthreads"
3341 if cygwin ; then
3342 if test "$_pthreads" = yes ; then
3343 def_pthread_cache="#define PTHREAD_CACHE 1"
3344 else
3345 _stream_cache=no
3346 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3350 echocheck "w32threads"
3351 if test "$_pthreads" = yes ; then
3352 _res_comment="using pthread instead"
3353 _w32threads=no
3355 if test "$_w32threads" = auto ; then
3356 _w32threads=no
3357 mingw32 && _w32threads=yes
3359 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3360 echores "$_w32threads"
3362 echocheck "rpath"
3363 netbsd &&_rpath=yes
3364 if test "$_rpath" = yes ; then
3365 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3366 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3367 done
3368 extra_ldflags=$tmp
3370 echores "$_rpath"
3372 echocheck "iconv"
3373 if test "$_iconv" = auto ; then
3374 cat > $TMPC << EOF
3375 #include <stdio.h>
3376 #include <unistd.h>
3377 #include <iconv.h>
3378 #define INBUFSIZE 1024
3379 #define OUTBUFSIZE 4096
3381 char inbuffer[INBUFSIZE];
3382 char outbuffer[OUTBUFSIZE];
3384 int main(void) {
3385 size_t numread;
3386 iconv_t icdsc;
3387 char *tocode="UTF-8";
3388 char *fromcode="cp1250";
3389 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3390 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3391 char *iptr=inbuffer;
3392 char *optr=outbuffer;
3393 size_t inleft=numread;
3394 size_t outleft=OUTBUFSIZE;
3395 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3396 != (size_t)(-1)) {
3397 write(1, outbuffer, OUTBUFSIZE - outleft);
3400 if (iconv_close(icdsc) == -1)
3403 return 0;
3406 _iconv=no
3407 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3408 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3409 _iconv=yes && break
3410 done
3412 if test "$_iconv" = yes ; then
3413 def_iconv='#define CONFIG_ICONV 1'
3414 else
3415 def_iconv='#undef CONFIG_ICONV'
3417 echores "$_iconv"
3420 echocheck "soundcard.h"
3421 _soundcard_h=no
3422 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3423 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3424 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3425 cat > $TMPC << EOF
3426 #include <$_soundcard_header>
3427 int main(void) { return 0; }
3429 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3430 done
3432 if test "$_soundcard_h" = yes ; then
3433 if test $_soundcard_header = "sys/soundcard.h"; then
3434 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3435 else
3436 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3439 echores "$_soundcard_h"
3442 echocheck "sys/dvdio.h"
3443 cat > $TMPC << EOF
3444 #include <unistd.h>
3445 #include <sys/dvdio.h>
3446 int main(void) { return 0; }
3448 _dvdio=no
3449 cc_check && _dvdio=yes
3450 if test "$_dvdio" = yes ; then
3451 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3452 else
3453 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3455 echores "$_dvdio"
3458 echocheck "sys/cdio.h"
3459 cat > $TMPC << EOF
3460 #include <unistd.h>
3461 #include <sys/cdio.h>
3462 int main(void) { return 0; }
3464 _cdio=no
3465 cc_check && _cdio=yes
3466 if test "$_cdio" = yes ; then
3467 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3468 else
3469 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3471 echores "$_cdio"
3474 echocheck "linux/cdrom.h"
3475 cat > $TMPC << EOF
3476 #include <sys/types.h>
3477 #include <linux/cdrom.h>
3478 int main(void) { return 0; }
3480 _cdrom=no
3481 cc_check && _cdrom=yes
3482 if test "$_cdrom" = yes ; then
3483 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3484 else
3485 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3487 echores "$_cdrom"
3490 echocheck "dvd.h"
3491 cat > $TMPC << EOF
3492 #include <dvd.h>
3493 int main(void) { return 0; }
3495 _dvd=no
3496 cc_check && _dvd=yes
3497 if test "$_dvd" = yes ; then
3498 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3499 else
3500 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3502 echores "$_dvd"
3505 if bsdos; then
3506 echocheck "BSDI dvd.h"
3507 cat > $TMPC << EOF
3508 #include <dvd.h>
3509 int main(void) { return 0; }
3511 _bsdi_dvd=no
3512 cc_check && _bsdi_dvd=yes
3513 if test "$_bsdi_dvd" = yes ; then
3514 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3515 else
3516 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3518 echores "$_bsdi_dvd"
3519 fi #if bsdos
3522 if hpux; then
3523 # also used by AIX, but AIX does not support VCD and/or libdvdread
3524 echocheck "HP-UX SCSI header"
3525 cat > $TMPC << EOF
3526 #include <sys/scsi.h>
3527 int main(void) { return 0; }
3529 _hpux_scsi_h=no
3530 cc_check && _hpux_scsi_h=yes
3531 if test "$_hpux_scsi_h" = yes ; then
3532 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3533 else
3534 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3536 echores "$_hpux_scsi_h"
3537 fi #if hpux
3540 if sunos; then
3541 echocheck "userspace SCSI headers (Solaris)"
3542 cat > $TMPC << EOF
3543 #include <unistd.h>
3544 #include <stropts.h>
3545 #include <sys/scsi/scsi_types.h>
3546 #include <sys/scsi/impl/uscsi.h>
3547 int main(void) { return 0; }
3549 _sol_scsi_h=no
3550 cc_check && _sol_scsi_h=yes
3551 if test "$_sol_scsi_h" = yes ; then
3552 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3553 else
3554 def_sol_scsi_h='#undef SOLARIS_USCSI'
3556 echores "$_sol_scsi_h"
3557 fi #if sunos
3560 echocheck "termcap"
3561 if test "$_termcap" = auto ; then
3562 cat > $TMPC <<EOF
3563 #include <stddef.h>
3564 #include <term.h>
3565 int main(void) { tgetent(NULL, NULL); return 0; }
3567 _termcap=no
3568 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3569 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3570 && _termcap=yes && break
3571 done
3573 if test "$_termcap" = yes ; then
3574 def_termcap='#define HAVE_TERMCAP 1'
3575 test $_ld_tmp && _res_comment="using $_ld_tmp"
3576 else
3577 def_termcap='#undef HAVE_TERMCAP'
3579 echores "$_termcap"
3582 echocheck "termios"
3583 def_termios='#undef HAVE_TERMIOS'
3584 def_termios_h='#undef HAVE_TERMIOS_H'
3585 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3586 if test "$_termios" = auto ; then
3587 _termios=no
3588 for _termios_header in "sys/termios.h" "termios.h"; do
3589 cat > $TMPC <<EOF
3590 #include <$_termios_header>
3591 int main(void) { return 0; }
3593 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3594 done
3597 if test "$_termios" = yes ; then
3598 def_termios='#define HAVE_TERMIOS 1'
3599 if test "$_termios_header" = "termios.h" ; then
3600 def_termios_h='#define HAVE_TERMIOS_H 1'
3601 else
3602 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3605 echores "$_termios"
3608 echocheck "shm"
3609 if test "$_shm" = auto ; then
3610 cat > $TMPC << EOF
3611 #include <sys/types.h>
3612 #include <sys/shm.h>
3613 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3615 _shm=no
3616 cc_check && _shm=yes
3618 if test "$_shm" = yes ; then
3619 def_shm='#define HAVE_SHM 1'
3620 else
3621 def_shm='#undef HAVE_SHM'
3623 echores "$_shm"
3626 echocheck "strsep()"
3627 cat > $TMPC << EOF
3628 #include <string.h>
3629 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3631 _strsep=no
3632 cc_check && _strsep=yes
3633 if test "$_strsep" = yes ; then
3634 def_strsep='#define HAVE_STRSEP 1'
3635 _need_strsep=no
3636 else
3637 def_strsep='#undef HAVE_STRSEP'
3638 _need_strsep=yes
3640 echores "$_strsep"
3643 echocheck "vsscanf()"
3644 cat > $TMPC << EOF
3645 #define _ISOC99_SOURCE
3646 #include <stdarg.h>
3647 #include <stdio.h>
3648 int main(void) { vsscanf(0, 0, 0); return 0; }
3650 _vsscanf=no
3651 cc_check && _vsscanf=yes
3652 if test "$_vsscanf" = yes ; then
3653 def_vsscanf='#define HAVE_VSSCANF 1'
3654 _need_vsscanf=no
3655 else
3656 def_vsscanf='#undef HAVE_VSSCANF'
3657 _need_vsscanf=yes
3659 echores "$_vsscanf"
3662 echocheck "swab()"
3663 cat > $TMPC << EOF
3664 #define _XOPEN_SOURCE 600
3665 #include <unistd.h>
3666 int main(void) { swab(0, 0, 0); return 0; }
3668 _swab=no
3669 cc_check && _swab=yes
3670 if test "$_swab" = yes ; then
3671 def_swab='#define HAVE_SWAB 1'
3672 _need_swab=no
3673 else
3674 def_swab='#undef HAVE_SWAB'
3675 _need_swab=yes
3677 echores "$_swab"
3679 echocheck "POSIX select()"
3680 cat > $TMPC << EOF
3681 #include <stdio.h>
3682 #include <stdlib.h>
3683 #include <sys/types.h>
3684 #include <string.h>
3685 #include <sys/time.h>
3686 #include <unistd.h>
3687 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3689 _posix_select=no
3690 def_posix_select='#undef HAVE_POSIX_SELECT'
3691 #select() of kLIBC (OS/2) supports socket only
3692 ! os2 && cc_check && _posix_select=yes \
3693 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3694 echores "$_posix_select"
3697 echocheck "audio select()"
3698 if test "$_select" = no ; then
3699 def_select='#undef HAVE_AUDIO_SELECT'
3700 elif test "$_select" = yes ; then
3701 def_select='#define HAVE_AUDIO_SELECT 1'
3703 echores "$_select"
3706 echocheck "gettimeofday()"
3707 cat > $TMPC << EOF
3708 #include <stdio.h>
3709 #include <sys/time.h>
3710 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3712 _gettimeofday=no
3713 cc_check && _gettimeofday=yes
3714 if test "$_gettimeofday" = yes ; then
3715 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3716 _need_gettimeofday=no
3717 else
3718 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3719 _need_gettimeofday=yes
3721 echores "$_gettimeofday"
3724 echocheck "glob()"
3725 cat > $TMPC << EOF
3726 #include <stdio.h>
3727 #include <glob.h>
3728 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3730 _glob=no
3731 cc_check && _glob=yes
3732 if test "$_glob" = yes ; then
3733 def_glob='#define HAVE_GLOB 1'
3734 _need_glob=no
3735 else
3736 def_glob='#undef HAVE_GLOB'
3737 _need_glob=yes
3739 echores "$_glob"
3742 echocheck "setenv()"
3743 cat > $TMPC << EOF
3744 #include <stdlib.h>
3745 int main(void) { setenv("","",0); return 0; }
3747 _setenv=no
3748 cc_check && _setenv=yes
3749 if test "$_setenv" = yes ; then
3750 def_setenv='#define HAVE_SETENV 1'
3751 _need_setenv=no
3752 else
3753 def_setenv='#undef HAVE_SETENV'
3754 _need_setenv=yes
3756 echores "$_setenv"
3759 if sunos; then
3760 echocheck "sysi86()"
3761 cat > $TMPC << EOF
3762 #include <sys/sysi86.h>
3763 int main(void) { sysi86(0); return 0; }
3765 _sysi86=no
3766 cc_check && _sysi86=yes
3767 if test "$_sysi86" = yes ; then
3768 def_sysi86='#define HAVE_SYSI86 1'
3769 cat > $TMPC << EOF
3770 #include <sys/sysi86.h>
3771 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3773 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3774 else
3775 def_sysi86='#undef HAVE_SYSI86'
3777 echores "$_sysi86"
3778 fi #if sunos
3781 echocheck "sys/sysinfo.h"
3782 cat > $TMPC << EOF
3783 #include <sys/sysinfo.h>
3784 int main(void) {
3785 struct sysinfo s_info;
3786 sysinfo(&s_info);
3787 return 0;
3790 _sys_sysinfo=no
3791 cc_check && _sys_sysinfo=yes
3792 if test "$_sys_sysinfo" = yes ; then
3793 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3794 else
3795 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3797 echores "$_sys_sysinfo"
3800 if darwin; then
3802 echocheck "Mac OS X Finder Support"
3803 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3804 if test "$_macosx_finder" = yes ; then
3805 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3806 extra_ldflags="$extra_ldflags -framework Carbon"
3808 echores "$_macosx_finder"
3810 echocheck "Mac OS X Bundle file locations"
3811 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3812 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3813 if test "$_macosx_bundle" = yes ; then
3814 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3815 extra_ldflags="$extra_ldflags -framework Carbon"
3817 echores "$_macosx_bundle"
3819 echocheck "Apple Remote"
3820 if test "$_apple_remote" = auto ; then
3821 _apple_remote=no
3822 cat > $TMPC <<EOF
3823 #include <stdio.h>
3824 #include <IOKit/IOCFPlugIn.h>
3825 int main(void) {
3826 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3827 CFMutableDictionaryRef hidMatchDictionary;
3828 IOReturn ioReturnValue;
3830 // Set up a matching dictionary to search the I/O Registry by class.
3831 // name for all HID class devices
3832 hidMatchDictionary = IOServiceMatching("AppleIRController");
3834 // Now search I/O Registry for matching devices.
3835 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3836 hidMatchDictionary, &hidObjectIterator);
3838 // If search is unsuccessful, return nonzero.
3839 if (ioReturnValue != kIOReturnSuccess ||
3840 !IOIteratorIsValid(hidObjectIterator)) {
3841 return 1;
3843 return 0;
3846 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3848 if test "$_apple_remote" = yes ; then
3849 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3850 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3851 else
3852 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3854 echores "$_apple_remote"
3856 fi #if darwin
3858 if linux; then
3860 echocheck "Apple IR"
3861 if test "$_apple_ir" = auto ; then
3862 _apple_ir=no
3863 cat > $TMPC <<EOF
3864 #include <linux/types.h>
3865 #include <linux/input.h>
3866 int main(void) {
3867 struct input_event ev;
3868 struct input_id id;
3869 return 0;
3872 cc_check && _apple_ir=yes
3874 if test "$_apple_ir" = yes ; then
3875 def_apple_ir='#define CONFIG_APPLE_IR 1'
3876 else
3877 def_apple_ir='#undef CONFIG_APPLE_IR'
3879 echores "$_apple_ir"
3880 fi #if linux
3882 echocheck "pkg-config"
3883 _pkg_config=pkg-config
3884 if $($_pkg_config --version > /dev/null 2>&1); then
3885 if test "$_ld_static"; then
3886 _pkg_config="$_pkg_config --static"
3888 echores "yes"
3889 else
3890 _pkg_config=false
3891 echores "no"
3895 echocheck "Samba support (libsmbclient)"
3896 if test "$_smb" = yes; then
3897 extra_ldflags="$extra_ldflags -lsmbclient"
3899 if test "$_smb" = auto; then
3900 _smb=no
3901 cat > $TMPC << EOF
3902 #include <libsmbclient.h>
3903 int main(void) { smbc_opendir("smb://"); return 0; }
3905 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3906 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3907 _smb=yes && break
3908 done
3911 if test "$_smb" = yes; then
3912 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3913 _inputmodules="smb $_inputmodules"
3914 else
3915 def_smb="#undef CONFIG_LIBSMBCLIENT"
3916 _noinputmodules="smb $_noinputmodules"
3918 echores "$_smb"
3921 #########
3922 # VIDEO #
3923 #########
3926 echocheck "tdfxfb"
3927 if test "$_tdfxfb" = yes ; then
3928 def_tdfxfb='#define CONFIG_TDFXFB 1'
3929 _vomodules="tdfxfb $_vomodules"
3930 else
3931 def_tdfxfb='#undef CONFIG_TDFXFB'
3932 _novomodules="tdfxfb $_novomodules"
3934 echores "$_tdfxfb"
3936 echocheck "s3fb"
3937 if test "$_s3fb" = yes ; then
3938 def_s3fb='#define CONFIG_S3FB 1'
3939 _vomodules="s3fb $_vomodules"
3940 else
3941 def_s3fb='#undef CONFIG_S3FB'
3942 _novomodules="s3fb $_novomodules"
3944 echores "$_s3fb"
3946 echocheck "wii"
3947 if test "$_wii" = yes ; then
3948 def_wii='#define CONFIG_WII 1'
3949 _vomodules="wii $_vomodules"
3950 else
3951 def_wii='#undef CONFIG_WII'
3952 _novomodules="wii $_novomodules"
3954 echores "$_wii"
3956 echocheck "tdfxvid"
3957 if test "$_tdfxvid" = yes ; then
3958 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3959 _vomodules="tdfx_vid $_vomodules"
3960 else
3961 def_tdfxvid='#undef CONFIG_TDFX_VID'
3962 _novomodules="tdfx_vid $_novomodules"
3964 echores "$_tdfxvid"
3966 echocheck "xvr100"
3967 if test "$_xvr100" = auto ; then
3968 cat > $TMPC << EOF
3969 #include <unistd.h>
3970 #include <sys/fbio.h>
3971 #include <sys/visual_io.h>
3972 int main(void) {
3973 struct vis_identifier ident;
3974 struct fbgattr attr;
3975 ioctl(0, VIS_GETIDENTIFIER, &ident);
3976 ioctl(0, FBIOGATTR, &attr);
3977 return 0;
3980 _xvr100=no
3981 cc_check && _xvr100=yes
3983 if test "$_xvr100" = yes ; then
3984 def_xvr100='#define CONFIG_XVR100 1'
3985 _vomodules="xvr100 $_vomodules"
3986 else
3987 def_tdfxvid='#undef CONFIG_XVR100'
3988 _novomodules="xvr100 $_novomodules"
3990 echores "$_xvr100"
3992 echocheck "tga"
3993 if test "$_tga" = yes ; then
3994 def_tga='#define CONFIG_TGA 1'
3995 _vomodules="tga $_vomodules"
3996 else
3997 def_tga='#undef CONFIG_TGA'
3998 _novomodules="tga $_novomodules"
4000 echores "$_tga"
4003 echocheck "md5sum support"
4004 if test "$_md5sum" = yes; then
4005 def_md5sum="#define CONFIG_MD5SUM 1"
4006 _vomodules="md5sum $_vomodules"
4007 else
4008 def_md5sum="#undef CONFIG_MD5SUM"
4009 _novomodules="md5sum $_novomodules"
4011 echores "$_md5sum"
4014 echocheck "yuv4mpeg support"
4015 if test "$_yuv4mpeg" = yes; then
4016 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4017 _vomodules="yuv4mpeg $_vomodules"
4018 else
4019 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4020 _novomodules="yuv4mpeg $_novomodules"
4022 echores "$_yuv4mpeg"
4025 echocheck "bl"
4026 if test "$_bl" = yes ; then
4027 def_bl='#define CONFIG_BL 1'
4028 _vomodules="bl $_vomodules"
4029 else
4030 def_bl='#undef CONFIG_BL'
4031 _novomodules="bl $_novomodules"
4033 echores "$_bl"
4036 echocheck "DirectFB"
4037 if test "$_directfb" = auto ; then
4038 _directfb=no
4039 cat > $TMPC <<EOF
4040 #include <directfb.h>
4041 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
4043 for _inc_tmp in "" -I/usr/local/include/directfb \
4044 -I/usr/include/directfb -I/usr/local/include; do
4045 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4046 extra_cflags="$extra_cflags $_inc_tmp" && break
4047 done
4050 dfb_version() {
4051 expr $1 \* 65536 + $2 \* 256 + $3
4054 if test "$_directfb" = yes; then
4055 cat > $TMPC << EOF
4056 #include <directfb_version.h>
4058 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4061 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4062 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4063 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4064 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4065 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4066 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4067 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4068 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4069 _res_comment="$_directfb_version"
4070 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4071 else
4072 def_directfb_version='#undef DIRECTFBVERSION'
4073 _directfb=no
4074 _res_comment="version >=0.9.13 required"
4076 else
4077 _directfb=no
4078 _res_comment="failed to get version"
4081 echores "$_directfb"
4083 if test "$_directfb" = yes ; then
4084 def_directfb='#define CONFIG_DIRECTFB 1'
4085 _vomodules="directfb $_vomodules"
4086 libs_mplayer="$libs_mplayer -ldirectfb"
4087 else
4088 def_directfb='#undef CONFIG_DIRECTFB'
4089 _novomodules="directfb $_novomodules"
4091 if test "$_dfbmga" = yes; then
4092 _vomodules="dfbmga $_vomodules"
4093 def_dfbmga='#define CONFIG_DFBMGA 1'
4094 else
4095 _novomodules="dfbmga $_novomodules"
4096 def_dfbmga='#undef CONFIG_DFBMGA'
4100 echocheck "X11 headers presence"
4101 _x11_headers="no"
4102 _res_comment="check if the dev(el) packages are installed"
4103 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4104 if test -f "$I/X11/Xlib.h" ; then
4105 _x11_headers="yes"
4106 _res_comment=""
4107 break
4109 done
4110 if test $_cross_compile = no; then
4111 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4112 /usr/include/X11R6 /usr/openwin/include ; do
4113 if test -f "$I/X11/Xlib.h" ; then
4114 extra_cflags="$extra_cflags -I$I"
4115 _x11_headers="yes"
4116 _res_comment="using $I"
4117 break
4119 done
4121 echores "$_x11_headers"
4124 echocheck "X11"
4125 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4126 cat > $TMPC <<EOF
4127 #include <X11/Xlib.h>
4128 #include <X11/Xutil.h>
4129 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4131 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4132 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4133 -L/usr/lib ; do
4134 if netbsd; then
4135 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4136 else
4137 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4139 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4140 && _x11=yes && break
4141 done
4143 if test "$_x11" = yes ; then
4144 def_x11='#define CONFIG_X11 1'
4145 _vomodules="x11 xover $_vomodules"
4146 else
4147 _x11=no
4148 def_x11='#undef CONFIG_X11'
4149 _novomodules="x11 $_novomodules"
4150 _res_comment="check if the dev(el) packages are installed"
4151 # disable stuff that depends on X
4152 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4154 echores "$_x11"
4156 echocheck "Xss screensaver extensions"
4157 if test "$_xss" = auto ; then
4158 cat > $TMPC << EOF
4159 #include <X11/Xlib.h>
4160 #include <X11/extensions/scrnsaver.h>
4161 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4163 _xss=no
4164 cc_check -lXss && _xss=yes
4166 if test "$_xss" = yes ; then
4167 def_xss='#define CONFIG_XSS 1'
4168 libs_mplayer="$libs_mplayer -lXss"
4169 else
4170 def_xss='#undef CONFIG_XSS'
4172 echores "$_xss"
4174 echocheck "DPMS"
4175 _xdpms3=no
4176 _xdpms4=no
4177 if test "$_x11" = yes ; then
4178 cat > $TMPC <<EOF
4179 #include <X11/Xmd.h>
4180 #include <X11/Xlib.h>
4181 #include <X11/Xutil.h>
4182 #include <X11/Xatom.h>
4183 #include <X11/extensions/dpms.h>
4184 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4186 cc_check -lXdpms && _xdpms3=yes
4187 cat > $TMPC <<EOF
4188 #include <X11/Xlib.h>
4189 #include <X11/extensions/dpms.h>
4190 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4192 cc_check -lXext && _xdpms4=yes
4194 if test "$_xdpms4" = yes ; then
4195 def_xdpms='#define CONFIG_XDPMS 1'
4196 _res_comment="using Xdpms 4"
4197 echores "yes"
4198 elif test "$_xdpms3" = yes ; then
4199 def_xdpms='#define CONFIG_XDPMS 1'
4200 libs_mplayer="$libs_mplayer -lXdpms"
4201 _res_comment="using Xdpms 3"
4202 echores "yes"
4203 else
4204 def_xdpms='#undef CONFIG_XDPMS'
4205 echores "no"
4209 echocheck "Xv"
4210 if test "$_xv" = auto ; then
4211 cat > $TMPC <<EOF
4212 #include <X11/Xlib.h>
4213 #include <X11/extensions/Xvlib.h>
4214 int main(void) {
4215 (void) XvGetPortAttribute(0, 0, 0, 0);
4216 (void) XvQueryPortAttributes(0, 0, 0);
4217 return 0; }
4219 _xv=no
4220 cc_check -lXv && _xv=yes
4223 if test "$_xv" = yes ; then
4224 def_xv='#define CONFIG_XV 1'
4225 libs_mplayer="$libs_mplayer -lXv"
4226 _vomodules="xv $_vomodules"
4227 else
4228 def_xv='#undef CONFIG_XV'
4229 _novomodules="xv $_novomodules"
4231 echores "$_xv"
4234 echocheck "XvMC"
4235 if test "$_xv" = yes && test "$_xvmc" != no ; then
4236 _xvmc=no
4237 cat > $TMPC <<EOF
4238 #include <X11/Xlib.h>
4239 #include <X11/extensions/Xvlib.h>
4240 #include <X11/extensions/XvMClib.h>
4241 int main(void) {
4242 (void) XvMCQueryExtension(0,0,0);
4243 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4244 return 0; }
4246 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4247 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4248 done
4250 if test "$_xvmc" = yes ; then
4251 def_xvmc='#define CONFIG_XVMC 1'
4252 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4253 _vomodules="xvmc $_vomodules"
4254 _res_comment="using $_xvmclib"
4255 else
4256 def_xvmc='#define CONFIG_XVMC 0'
4257 _novomodules="xvmc $_novomodules"
4259 echores "$_xvmc"
4262 echocheck "VDPAU"
4263 if test "$_vdpau" = auto ; then
4264 _vdpau=no
4265 if test "$_dl" = yes ; then
4266 cat > $TMPC <<EOF
4267 #include <vdpau/vdpau_x11.h>
4268 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4270 cc_check && _vdpau=yes
4273 if test "$_vdpau" = yes ; then
4274 def_vdpau='#define CONFIG_VDPAU 1'
4275 _vomodules="vdpau $_vomodules"
4276 else
4277 def_vdpau='#define CONFIG_VDPAU 0'
4278 _novomodules="vdpau $_novomodules"
4280 echores "$_vdpau"
4283 echocheck "Xinerama"
4284 if test "$_xinerama" = auto ; then
4285 cat > $TMPC <<EOF
4286 #include <X11/Xlib.h>
4287 #include <X11/extensions/Xinerama.h>
4288 int main(void) { (void) XineramaIsActive(0); return 0; }
4290 _xinerama=no
4291 cc_check -lXinerama && _xinerama=yes
4294 if test "$_xinerama" = yes ; then
4295 def_xinerama='#define CONFIG_XINERAMA 1'
4296 libs_mplayer="$libs_mplayer -lXinerama"
4297 else
4298 def_xinerama='#undef CONFIG_XINERAMA'
4300 echores "$_xinerama"
4303 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4304 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4305 # named 'X extensions' or something similar.
4306 # This check may be useful for future mplayer versions (to change resolution)
4307 # If you run into problems, remove '-lXxf86vm'.
4308 echocheck "Xxf86vm"
4309 if test "$_vm" = auto ; then
4310 cat > $TMPC <<EOF
4311 #include <X11/Xlib.h>
4312 #include <X11/extensions/xf86vmode.h>
4313 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4315 _vm=no
4316 cc_check -lXxf86vm && _vm=yes
4318 if test "$_vm" = yes ; then
4319 def_vm='#define CONFIG_XF86VM 1'
4320 libs_mplayer="$libs_mplayer -lXxf86vm"
4321 else
4322 def_vm='#undef CONFIG_XF86VM'
4324 echores "$_vm"
4326 # Check for the presence of special keycodes, like audio control buttons
4327 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4328 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4329 # have these new keycodes.
4330 echocheck "XF86keysym"
4331 if test "$_xf86keysym" = auto; then
4332 _xf86keysym=no
4333 cat > $TMPC <<EOF
4334 #include <X11/Xlib.h>
4335 #include <X11/XF86keysym.h>
4336 int main(void) { return XF86XK_AudioPause; }
4338 cc_check && _xf86keysym=yes
4340 if test "$_xf86keysym" = yes ; then
4341 def_xf86keysym='#define CONFIG_XF86XK 1'
4342 else
4343 def_xf86keysym='#undef CONFIG_XF86XK'
4345 echores "$_xf86keysym"
4347 echocheck "DGA"
4348 if test "$_dga2" = auto && test "$_x11" = yes ; then
4349 cat > $TMPC << EOF
4350 #include <X11/Xlib.h>
4351 #include <X11/extensions/xf86dga.h>
4352 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4354 _dga2=no
4355 cc_check -lXxf86dga && _dga2=yes
4357 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4358 cat > $TMPC << EOF
4359 #include <X11/Xlib.h>
4360 #include <X11/extensions/xf86dga.h>
4361 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4363 _dga1=no
4364 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4367 _dga=no
4368 def_dga='#undef CONFIG_DGA'
4369 def_dga1='#undef CONFIG_DGA1'
4370 def_dga2='#undef CONFIG_DGA2'
4371 if test "$_dga1" = yes ; then
4372 _dga=yes
4373 def_dga1='#define CONFIG_DGA1 1'
4374 _res_comment="using DGA 1.0"
4375 elif test "$_dga2" = yes ; then
4376 _dga=yes
4377 def_dga2='#define CONFIG_DGA2 1'
4378 _res_comment="using DGA 2.0"
4380 if test "$_dga" = yes ; then
4381 def_dga='#define CONFIG_DGA 1'
4382 libs_mplayer="$libs_mplayer -lXxf86dga"
4383 _vomodules="dga $_vomodules"
4384 else
4385 _novomodules="dga $_novomodules"
4387 echores "$_dga"
4390 echocheck "3dfx"
4391 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4392 def_3dfx='#define CONFIG_3DFX 1'
4393 _vomodules="3dfx $_vomodules"
4394 else
4395 def_3dfx='#undef CONFIG_3DFX'
4396 _novomodules="3dfx $_novomodules"
4398 echores "$_3dfx"
4401 echocheck "VIDIX"
4402 def_vidix='#undef CONFIG_VIDIX'
4403 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4404 _vidix_drv_cyberblade=no
4405 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4406 _vidix_drv_ivtv=no
4407 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4408 _vidix_drv_mach64=no
4409 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4410 _vidix_drv_mga=no
4411 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4412 _vidix_drv_mga_crtc2=no
4413 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4414 _vidix_drv_nvidia=no
4415 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4416 _vidix_drv_pm2=no
4417 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4418 _vidix_drv_pm3=no
4419 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4420 _vidix_drv_radeon=no
4421 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4422 _vidix_drv_rage128=no
4423 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4424 _vidix_drv_s3=no
4425 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4426 _vidix_drv_sh_veu=no
4427 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4428 _vidix_drv_sis=no
4429 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4430 _vidix_drv_unichrome=no
4431 if test "$_vidix" = auto ; then
4432 _vidix=no
4433 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4434 && _vidix=yes
4435 (ppc || alpha) && linux && _vidix=yes
4437 echores "$_vidix"
4439 if test "$_vidix" = yes ; then
4440 def_vidix='#define CONFIG_VIDIX 1'
4441 _vomodules="cvidix $_vomodules"
4442 # FIXME: ivtv driver temporarily disabled until we have a proper test
4443 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4444 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4446 # some vidix drivers are architecture and os specific, discard them elsewhere
4447 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4448 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4450 for driver in $_vidix_drivers ; do
4451 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4452 eval _vidix_drv_${driver}=yes
4453 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4454 done
4456 echocheck "VIDIX PCI device name database"
4457 echores "$_vidix_pcidb"
4458 if test "$_vidix_pcidb" = yes ; then
4459 _vidix_pcidb_val=1
4460 else
4461 _vidix_pcidb_val=0
4464 echocheck "VIDIX dhahelper support"
4465 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4466 echores "$_dhahelper"
4468 echocheck "VIDIX svgalib_helper support"
4469 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4470 echores "$_svgalib_helper"
4472 else
4473 _novomodules="cvidix $_novomodules"
4476 if test "$_vidix" = yes && win32; then
4477 winvidix=yes
4478 _vomodules="winvidix $_vomodules"
4479 libs_mplayer="$libs_mplayer -lgdi32"
4480 else
4481 _novomodules="winvidix $_novomodules"
4483 if test "$_vidix" = yes && test "$_x11" = yes; then
4484 xvidix=yes
4485 _vomodules="xvidix $_vomodules"
4486 else
4487 _novomodules="xvidix $_novomodules"
4490 echocheck "GGI"
4491 if test "$_ggi" = auto ; then
4492 cat > $TMPC << EOF
4493 #include <ggi/ggi.h>
4494 int main(void) { ggiInit(); return 0; }
4496 _ggi=no
4497 cc_check -lggi && _ggi=yes
4499 if test "$_ggi" = yes ; then
4500 def_ggi='#define CONFIG_GGI 1'
4501 libs_mplayer="$libs_mplayer -lggi"
4502 _vomodules="ggi $_vomodules"
4503 else
4504 def_ggi='#undef CONFIG_GGI'
4505 _novomodules="ggi $_novomodules"
4507 echores "$_ggi"
4509 echocheck "GGI extension: libggiwmh"
4510 if test "$_ggiwmh" = auto ; then
4511 _ggiwmh=no
4512 cat > $TMPC << EOF
4513 #include <ggi/ggi.h>
4514 #include <ggi/wmh.h>
4515 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4517 cc_check -lggi -lggiwmh && _ggiwmh=yes
4519 # needed to get right output on obscure combination
4520 # like --disable-ggi --enable-ggiwmh
4521 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4522 def_ggiwmh='#define CONFIG_GGIWMH 1'
4523 libs_mplayer="$libs_mplayer -lggiwmh"
4524 else
4525 _ggiwmh=no
4526 def_ggiwmh='#undef CONFIG_GGIWMH'
4528 echores "$_ggiwmh"
4531 echocheck "AA"
4532 if test "$_aa" = auto ; then
4533 cat > $TMPC << EOF
4534 #include <aalib.h>
4535 extern struct aa_hardware_params aa_defparams;
4536 extern struct aa_renderparams aa_defrenderparams;
4537 int main(void) {
4538 aa_context *c;
4539 aa_renderparams *p;
4540 (void) aa_init(0, 0, 0);
4541 c = aa_autoinit(&aa_defparams);
4542 p = aa_getrenderparams();
4543 aa_autoinitkbd(c,0);
4544 return 0; }
4546 _aa=no
4547 for _ld_tmp in "-laa" ; do
4548 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4549 done
4551 if test "$_aa" = yes ; then
4552 def_aa='#define CONFIG_AA 1'
4553 if cygwin ; then
4554 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4556 _vomodules="aa $_vomodules"
4557 else
4558 def_aa='#undef CONFIG_AA'
4559 _novomodules="aa $_novomodules"
4561 echores "$_aa"
4564 echocheck "CACA"
4565 if test "$_caca" = auto ; then
4566 _caca=no
4567 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4568 cat > $TMPC << EOF
4569 #include <caca.h>
4570 #ifdef CACA_API_VERSION_1
4571 #include <caca0.h>
4572 #endif
4573 int main(void) { (void) caca_init(); return 0; }
4575 cc_check $(caca-config --libs) && _caca=yes
4578 if test "$_caca" = yes ; then
4579 def_caca='#define CONFIG_CACA 1'
4580 extra_cflags="$extra_cflags $(caca-config --cflags)"
4581 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4582 _vomodules="caca $_vomodules"
4583 else
4584 def_caca='#undef CONFIG_CACA'
4585 _novomodules="caca $_novomodules"
4587 echores "$_caca"
4590 echocheck "SVGAlib"
4591 if test "$_svga" = auto ; then
4592 cat > $TMPC << EOF
4593 #include <vga.h>
4594 int main(void) { return 0; }
4596 _svga=no
4597 cc_check -lvga $_ld_lm && _svga=yes
4599 if test "$_svga" = yes ; then
4600 def_svga='#define CONFIG_SVGALIB 1'
4601 libs_mplayer="$libs_mplayer -lvga"
4602 _vomodules="svga $_vomodules"
4603 else
4604 def_svga='#undef CONFIG_SVGALIB'
4605 _novomodules="svga $_novomodules"
4607 echores "$_svga"
4610 echocheck "FBDev"
4611 if test "$_fbdev" = auto ; then
4612 _fbdev=no
4613 linux && _fbdev=yes
4615 if test "$_fbdev" = yes ; then
4616 def_fbdev='#define CONFIG_FBDEV 1'
4617 _vomodules="fbdev $_vomodules"
4618 else
4619 def_fbdev='#undef CONFIG_FBDEV'
4620 _novomodules="fbdev $_novomodules"
4622 echores "$_fbdev"
4626 echocheck "DVB"
4627 if test "$_dvb" = auto ; then
4628 _dvb=no
4629 cat >$TMPC << EOF
4630 #include <poll.h>
4631 #include <sys/ioctl.h>
4632 #include <stdio.h>
4633 #include <time.h>
4634 #include <unistd.h>
4635 #include <ost/dmx.h>
4636 #include <ost/frontend.h>
4637 #include <ost/sec.h>
4638 #include <ost/video.h>
4639 #include <ost/audio.h>
4640 int main(void) {return 0;}
4642 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4643 cc_check $_inc_tmp && _dvb=yes && \
4644 extra_cflags="$extra_cflags $_inc_tmp" && break
4645 done
4647 echores "$_dvb"
4648 if test "$_dvb" = yes ; then
4649 def_dvb='#define CONFIG_DVB 1'
4650 def_dvbin='#define CONFIG_DVBIN 1'
4651 _aomodules="mpegpes(dvb) $_aomodules"
4652 _vomodules="mpegpes(dvb) $_vomodules"
4655 echocheck "DVB HEAD"
4656 if test "$_dvbhead" = auto ; then
4657 _dvbhead=no
4659 cat >$TMPC << EOF
4660 #include <poll.h>
4661 #include <sys/ioctl.h>
4662 #include <stdio.h>
4663 #include <time.h>
4664 #include <unistd.h>
4665 #include <linux/dvb/dmx.h>
4666 #include <linux/dvb/frontend.h>
4667 #include <linux/dvb/video.h>
4668 #include <linux/dvb/audio.h>
4669 int main(void) {return 0;}
4671 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4672 cc_check $_inc_tmp && _dvbhead=yes && \
4673 extra_cflags="$extra_cflags $_inc_tmp" && break
4674 done
4676 echores "$_dvbhead"
4677 if test "$_dvbhead" = yes ; then
4678 def_dvb='#define CONFIG_DVB 1'
4679 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4680 def_dvbin='#define CONFIG_DVBIN 1'
4681 _aomodules="mpegpes(dvb) $_aomodules"
4682 _vomodules="mpegpes(dvb) $_vomodules"
4685 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4686 def_dvb='#undef CONFIG_DVB'
4687 def_dvb_head='#undef CONFIG_DVB_HEAD'
4688 def_dvbin='#undef CONFIG_DVBIN '
4689 _aomodules="mpegpes(file) $_aomodules"
4690 _vomodules="mpegpes(file) $_vomodules"
4693 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4694 _dvbin=yes
4695 _inputmodules="dvb $_inputmodules"
4696 else
4697 _dvbin=no
4698 _noinputmodules="dvb $_noinputmodules"
4702 if darwin; then
4704 echocheck "QuickTime"
4705 if test "$quicktime" = auto ; then
4706 cat > $TMPC <<EOF
4707 #include <QuickTime/QuickTime.h>
4708 int main(void) {
4709 ImageDescription *desc;
4710 EnterMovies();
4711 ExitMovies();
4712 return 0;
4715 quicktime=no
4716 cc_check -framework QuickTime && quicktime=yes
4718 if test "$quicktime" = yes ; then
4719 extra_ldflags="$extra_ldflags -framework QuickTime"
4720 def_quicktime='#define CONFIG_QUICKTIME 1'
4721 else
4722 def_quicktime='#undef CONFIG_QUICKTIME'
4723 _quartz=no
4725 echores $quicktime
4727 echocheck "Quartz"
4728 if test "$_quartz" = auto ; then
4729 cat > $TMPC <<EOF
4730 #include <Carbon/Carbon.h>
4731 int main(void) {
4732 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4733 return 0;
4736 _quartz=no
4737 cc_check -framework Carbon && _quartz=yes
4739 if test "$_quartz" = yes ; then
4740 libs_mplayer="$libs_mplayer -framework Carbon"
4741 def_quartz='#define CONFIG_QUARTZ 1'
4742 _vomodules="quartz $_vomodules"
4743 else
4744 def_quartz='#undef CONFIG_QUARTZ'
4745 _novomodules="quartz $_novomodules"
4747 echores $_quartz
4749 echocheck "CoreVideo"
4750 if test "$_corevideo" = auto ; then
4751 cat > $TMPC <<EOF
4752 #include <Carbon/Carbon.h>
4753 #include <CoreServices/CoreServices.h>
4754 #include <OpenGL/OpenGL.h>
4755 #include <QuartzCore/CoreVideo.h>
4756 int main(void) { return 0; }
4758 _corevideo=no
4759 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4761 if test "$_corevideo" = yes ; then
4762 _vomodules="corevideo $_vomodules"
4763 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4764 def_corevideo='#define CONFIG_COREVIDEO 1'
4765 else
4766 _novomodules="corevideo $_novomodules"
4767 def_corevideo='#undef CONFIG_COREVIDEO'
4769 echores "$_corevideo"
4771 fi #if darwin
4774 # make sure this stays below CoreVideo to avoid issues due to namespace
4775 # conflicts between -lGL and -framework OpenGL
4776 echocheck "OpenGL"
4777 #Note: this test is run even with --enable-gl since we autodetect linker flags
4778 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4779 cat > $TMPC << EOF
4780 #ifdef GL_WIN32
4781 #include <windows.h>
4782 #include <GL/gl.h>
4783 #else
4784 #include <GL/gl.h>
4785 #include <X11/Xlib.h>
4786 #include <GL/glx.h>
4787 #endif
4788 int main(void) {
4789 #ifdef GL_WIN32
4790 HDC dc;
4791 wglCreateContext(dc);
4792 #else
4793 glXCreateContext(NULL, NULL, NULL, True);
4794 #endif
4795 glFinish();
4796 return 0;
4799 _gl=no
4800 if cc_check -lGL $_ld_lm ; then
4801 _gl=yes
4802 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4803 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4804 _gl=yes
4805 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4806 elif cc_check -DGL_WIN32 -lopengl32 ; then
4807 _gl=yes
4808 _gl_win32=yes
4809 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4811 else
4812 _gl=no
4814 if test "$_gl" = yes ; then
4815 def_gl='#define CONFIG_GL 1'
4816 if test "$_gl_win32" = yes ; then
4817 def_gl_win32='#define GL_WIN32 1'
4818 _res_comment="win32 version"
4820 _vomodules="opengl $_vomodules"
4821 else
4822 def_gl='#undef CONFIG_GL'
4823 def_gl_win32='#undef GL_WIN32'
4824 _novomodules="opengl $_novomodules"
4826 echores "$_gl"
4829 echocheck "PNG support"
4830 if test "$_png" = auto ; then
4831 _png=no
4832 if irix ; then
4833 # Don't check for -lpng on irix since it has its own libpng
4834 # incompatible with the GNU libpng
4835 _res_comment="disabled on irix (not GNU libpng)"
4836 else
4837 cat > $TMPC << EOF
4838 #include <png.h>
4839 #include <string.h>
4840 int main(void) {
4841 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4842 printf("libpng: %s\n", png_libpng_ver);
4843 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4846 cc_check -lpng -lz $_ld_lm && _png=yes
4849 echores "$_png"
4850 if test "$_png" = yes ; then
4851 def_png='#define CONFIG_PNG 1'
4852 extra_ldflags="$extra_ldflags -lpng -lz"
4853 _vomodules="png $_vomodules"
4854 else
4855 def_png='#undef CONFIG_PNG'
4856 _novomodules="png $_novomodules"
4859 echocheck "MNG support"
4860 if test "$_mng" = auto ; then
4861 _mng=no
4862 cat > $TMPC << EOF
4863 #include <libmng.h>
4864 int main(void) {
4865 const char * p_ver = mng_version_text();
4866 return !p_ver || p_ver[0] == 0;
4869 if cc_check -lmng -lz $_ld_lm ; then
4870 _mng=yes
4873 echores "$_mng"
4874 if test "$_mng" = yes ; then
4875 def_mng='#define CONFIG_MNG 1'
4876 extra_ldflags="$extra_ldflags -lmng -lz"
4877 else
4878 def_mng='#undef CONFIG_MNG'
4881 echocheck "JPEG support"
4882 if test "$_jpeg" = auto ; then
4883 _jpeg=no
4884 cat > $TMPC << EOF
4885 #include <stdio.h>
4886 #include <stdlib.h>
4887 #include <setjmp.h>
4888 #include <string.h>
4889 #include <jpeglib.h>
4890 int main(void) { return 0; }
4892 cc_check -ljpeg $_ld_lm && _jpeg=yes
4894 echores "$_jpeg"
4896 if test "$_jpeg" = yes ; then
4897 def_jpeg='#define CONFIG_JPEG 1'
4898 _vomodules="jpeg $_vomodules"
4899 extra_ldflags="$extra_ldflags -ljpeg"
4900 else
4901 def_jpeg='#undef CONFIG_JPEG'
4902 _novomodules="jpeg $_novomodules"
4907 echocheck "PNM support"
4908 if test "$_pnm" = yes; then
4909 def_pnm="#define CONFIG_PNM 1"
4910 _vomodules="pnm $_vomodules"
4911 else
4912 def_pnm="#undef CONFIG_PNM"
4913 _novomodules="pnm $_novomodules"
4915 echores "$_pnm"
4919 echocheck "GIF support"
4920 # This is to appease people who want to force gif support.
4921 # If it is forced to yes, then we still do checks to determine
4922 # which gif library to use.
4923 if test "$_gif" = yes ; then
4924 _force_gif=yes
4925 _gif=auto
4928 if test "$_gif" = auto ; then
4929 _gif=no
4930 cat > $TMPC << EOF
4931 #include <gif_lib.h>
4932 int main(void) { return 0; }
4934 for _ld_gif in "-lungif" "-lgif" ; do
4935 cc_check $_ld_gif && _gif=yes && break
4936 done
4939 # If no library was found, and the user wants support forced,
4940 # then we force it on with libgif, as this is the safest
4941 # assumption IMHO. (libungif & libregif both create symbolic
4942 # links to libgif. We also assume that no x11 support is needed,
4943 # because if you are forcing this, then you _should_ know what
4944 # you are doing. [ Besides, package maintainers should never
4945 # have compiled x11 deps into libungif in the first place. ] )
4946 # </rant>
4947 # --Joey
4948 if test "$_force_gif" = yes && test "$_gif" = no ; then
4949 _gif=yes
4950 _ld_gif="-lgif"
4953 if test "$_gif" = yes ; then
4954 def_gif='#define CONFIG_GIF 1'
4955 _codecmodules="gif $_codecmodules"
4956 _vomodules="gif89a $_vomodules"
4957 _res_comment="old version, some encoding functions disabled"
4958 def_gif_4='#undef CONFIG_GIF_4'
4959 extra_ldflags="$extra_ldflags $_ld_gif"
4961 cat > $TMPC << EOF
4962 #include <signal.h>
4963 #include <gif_lib.h>
4964 void catch() { exit(1); }
4965 int main(void) {
4966 signal(SIGSEGV, catch); // catch segfault
4967 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4968 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4969 return 0;
4972 if cc_check "$_ld_gif" ; then
4973 def_gif_4='#define CONFIG_GIF_4 1'
4974 _res_comment=""
4976 else
4977 def_gif='#undef CONFIG_GIF'
4978 def_gif_4='#undef CONFIG_GIF_4'
4979 _novomodules="gif89a $_novomodules"
4980 _nocodecmodules="gif $_nocodecmodules"
4982 echores "$_gif"
4985 case "$_gif" in yes*)
4986 echocheck "broken giflib workaround"
4987 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4989 cat > $TMPC << EOF
4990 #include <gif_lib.h>
4991 int main(void) {
4992 GifFileType gif;
4993 printf("UserData is at address %p\n", gif.UserData);
4994 return 0;
4997 if cc_check "$_ld_gif" ; then
4998 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4999 echores "disabled"
5000 else
5001 echores "enabled"
5004 esac
5007 echocheck "VESA support"
5008 if test "$_vesa" = auto ; then
5009 cat > $TMPC << EOF
5010 #include <vbe.h>
5011 int main(void) { vbeVersion(); return 0; }
5013 _vesa=no
5014 cc_check -lvbe -llrmi && _vesa=yes
5016 if test "$_vesa" = yes ; then
5017 def_vesa='#define CONFIG_VESA 1'
5018 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5019 _vomodules="vesa $_vomodules"
5020 else
5021 def_vesa='#undef CONFIG_VESA'
5022 _novomodules="vesa $_novomodules"
5024 echores "$_vesa"
5026 #################
5027 # VIDEO + AUDIO #
5028 #################
5031 echocheck "SDL"
5032 if test -z "$_sdlconfig" ; then
5033 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5034 _sdlconfig="sdl-config"
5035 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5036 _sdlconfig="sdl11-config"
5037 else
5038 _sdlconfig=false
5041 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5042 cat > $TMPC << EOF
5043 #include <SDL.h>
5044 int main(int argc, char *argv[]) {
5045 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5046 return 0;
5049 _sdl=no
5050 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5051 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
5052 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5053 if test "$_sdlversion" -gt 116 ; then
5054 if test "$_sdlversion" -lt 121 ; then
5055 def_sdlbuggy='#define BUGGY_SDL'
5056 else
5057 def_sdlbuggy='#undef BUGGY_SDL'
5059 _sdl=yes
5064 if test "$_sdl" = yes ; then
5065 def_sdl='#define CONFIG_SDL 1'
5066 if cygwin ; then
5067 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5068 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5069 elif mingw32 ; then
5070 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5071 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5072 else
5073 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5074 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5076 _vomodules="sdl $_vomodules"
5077 _aomodules="sdl $_aomodules"
5078 _res_comment="using $_sdlconfig"
5079 else
5080 def_sdl='#undef CONFIG_SDL'
5081 _novomodules="sdl $_novomodules"
5082 _noaomodules="sdl $_noaomodules"
5084 echores "$_sdl"
5087 if os2 ; then
5088 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5089 if test "$_kva" = auto; then
5090 cat > $TMPC << EOF
5091 #include <os2.h>
5092 #include <kva.h>
5093 int main( void ) { return 0; }
5095 _kva=no;
5096 cc_check -lkva && _kva=yes
5098 if test "$_kva" = yes ; then
5099 def_kva='#define CONFIG_KVA 1'
5100 libs_mplayer="$libs_mplayer -lkva"
5101 _vomodules="kva $_vomodules"
5102 else
5103 def_kva='#undef CONFIG_KVA'
5104 _novomodules="kva $_novomodules"
5106 echores "$_kva"
5107 fi #if os2
5110 if win32; then
5112 echocheck "Windows waveout"
5113 if test "$_win32waveout" = auto ; then
5114 cat > $TMPC << EOF
5115 #include <windows.h>
5116 #include <mmsystem.h>
5117 int main(void) { return 0; }
5119 _win32waveout=no
5120 cc_check -lwinmm && _win32waveout=yes
5122 if test "$_win32waveout" = yes ; then
5123 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5124 libs_mplayer="$libs_mplayer -lwinmm"
5125 _aomodules="win32 $_aomodules"
5126 else
5127 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5128 _noaomodules="win32 $_noaomodules"
5130 echores "$_win32waveout"
5132 echocheck "Direct3D"
5133 if test "$_direct3d" = auto ; then
5134 cat > $TMPC << EOF
5135 #include <windows.h>
5136 #include <d3d9.h>
5137 int main(void) { return 0; }
5139 _direct3d=no
5140 cc_check -ld3d9 && _direct3d=yes
5142 if test "$_direct3d" = yes ; then
5143 def_direct3d='#define CONFIG_DIRECT3D 1'
5144 libs_mplayer="$libs_mplayer -ld3d9"
5145 _vomodules="direct3d $_vomodules"
5146 else
5147 def_direct3d='#undef CONFIG_DIRECT3D'
5148 _novomodules="direct3d $_novomodules"
5150 echores "$_direct3d"
5152 echocheck "Directx"
5153 if test "$_directx" = auto ; then
5154 cat > $TMPC << EOF
5155 #include <windows.h>
5156 #include <ddraw.h>
5157 #include <dsound.h>
5158 int main(void) { return 0; }
5160 _directx=no
5161 cc_check -lgdi32 && _directx=yes
5163 if test "$_directx" = yes ; then
5164 def_directx='#define CONFIG_DIRECTX 1'
5165 libs_mplayer="$libs_mplayer -lgdi32"
5166 _vomodules="directx $_vomodules"
5167 _aomodules="dsound $_aomodules"
5168 else
5169 def_directx='#undef CONFIG_DIRECTX'
5170 _novomodules="directx $_novomodules"
5171 _noaomodules="dsound $_noaomodules"
5173 echores "$_directx"
5175 fi #if win32; then
5178 echocheck "DXR2"
5179 if test "$_dxr2" = auto; then
5180 _dxr2=no
5181 cat > $TMPC << EOF
5182 #include <dxr2ioctl.h>
5183 int main(void) { return 0; }
5185 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5186 cc_check $_inc_tmp && _dxr2=yes && \
5187 extra_cflags="$extra_cflags $_inc_tmp" && break
5188 done
5190 if test "$_dxr2" = yes; then
5191 def_dxr2='#define CONFIG_DXR2 1'
5192 _aomodules="dxr2 $_aomodules"
5193 _vomodules="dxr2 $_vomodules"
5194 else
5195 def_dxr2='#undef CONFIG_DXR2'
5196 _noaomodules="dxr2 $_noaomodules"
5197 _novomodules="dxr2 $_novomodules"
5199 echores "$_dxr2"
5201 echocheck "DXR3/H+"
5202 if test "$_dxr3" = auto ; then
5203 cat > $TMPC << EOF
5204 #include <linux/em8300.h>
5205 int main(void) { return 0; }
5207 _dxr3=no
5208 cc_check && _dxr3=yes
5210 if test "$_dxr3" = yes ; then
5211 def_dxr3='#define CONFIG_DXR3 1'
5212 _vomodules="dxr3 $_vomodules"
5213 else
5214 def_dxr3='#undef CONFIG_DXR3'
5215 _novomodules="dxr3 $_novomodules"
5217 echores "$_dxr3"
5220 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5221 if test "$_ivtv" = auto ; then
5222 cat > $TMPC << EOF
5223 #include <stdlib.h>
5224 #include <inttypes.h>
5225 #include <linux/types.h>
5226 #include <linux/videodev2.h>
5227 #include <linux/ivtv.h>
5228 #include <sys/ioctl.h>
5229 int main(void) {
5230 struct ivtv_cfg_stop_decode sd;
5231 struct ivtv_cfg_start_decode sd1;
5232 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5233 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5234 return 0; }
5236 _ivtv=no
5237 cc_check && _ivtv=yes
5239 if test "$_ivtv" = yes ; then
5240 def_ivtv='#define CONFIG_IVTV 1'
5241 _vomodules="ivtv $_vomodules"
5242 _aomodules="ivtv $_aomodules"
5243 else
5244 def_ivtv='#undef CONFIG_IVTV'
5245 _novomodules="ivtv $_novomodules"
5246 _noaomodules="ivtv $_noaomodules"
5248 echores "$_ivtv"
5251 echocheck "V4L2 MPEG Decoder"
5252 if test "$_v4l2" = auto ; then
5253 cat > $TMPC << EOF
5254 #include <stdlib.h>
5255 #include <inttypes.h>
5256 #include <linux/types.h>
5257 #include <linux/videodev2.h>
5258 #include <linux/version.h>
5259 int main(void) {
5260 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5261 #error kernel headers too old, need 2.6.22
5262 #endif
5263 struct v4l2_ext_controls ctrls;
5264 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5265 return 0;
5268 _v4l2=no
5269 cc_check && _v4l2=yes
5271 if test "$_v4l2" = yes ; then
5272 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5273 _vomodules="v4l2 $_vomodules"
5274 _aomodules="v4l2 $_aomodules"
5275 else
5276 def_v4l2='#undef CONFIG_V4L2_DECODER'
5277 _novomodules="v4l2 $_novomodules"
5278 _noaomodules="v4l2 $_noaomodules"
5280 echores "$_v4l2"
5284 #########
5285 # AUDIO #
5286 #########
5289 echocheck "OSS Audio"
5290 if test "$_ossaudio" = auto ; then
5291 cat > $TMPC << EOF
5292 #include <sys/ioctl.h>
5293 #include <$_soundcard_header>
5294 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5296 _ossaudio=no
5297 cc_check && _ossaudio=yes
5299 if test "$_ossaudio" = yes ; then
5300 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5301 _aomodules="oss $_aomodules"
5302 if test "$_linux_devfs" = yes; then
5303 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5304 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5305 else
5306 cat > $TMPC << EOF
5307 #include <sys/ioctl.h>
5308 #include <$_soundcard_header>
5309 #ifdef OPEN_SOUND_SYSTEM
5310 int main(void) { return 0; }
5311 #else
5312 #error Not the real thing
5313 #endif
5315 _real_ossaudio=no
5316 cc_check && _real_ossaudio=yes
5317 if test "$_real_ossaudio" = yes; then
5318 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5319 # Check for OSS4 headers (override default headers)
5320 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5321 if test -f /etc/oss.conf; then
5322 . /etc/oss.conf
5323 _ossinc="$OSSLIBDIR/include"
5324 if test -f "$_ossinc/sys/soundcard.h"; then
5325 extra_cflags="-I$_ossinc $extra_cflags"
5328 elif netbsd || openbsd ; then
5329 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5330 extra_ldflags="$extra_ldflags -lossaudio"
5331 else
5332 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5334 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5336 else
5337 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5338 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5339 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5340 _noaomodules="oss $_noaomodules"
5342 echores "$_ossaudio"
5345 echocheck "aRts"
5346 if test "$_arts" = auto ; then
5347 _arts=no
5348 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5350 cat > $TMPC << EOF
5351 #include <artsc.h>
5352 int main(void) { return 0; }
5354 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5359 if test "$_arts" = yes ; then
5360 def_arts='#define CONFIG_ARTS 1'
5361 _aomodules="arts $_aomodules"
5362 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5363 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5364 else
5365 _noaomodules="arts $_noaomodules"
5367 echores "$_arts"
5370 echocheck "EsounD"
5371 if test "$_esd" = auto ; then
5372 _esd=no
5373 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5375 cat > $TMPC << EOF
5376 #include <esd.h>
5377 int main(void) { int fd = esd_open_sound("test"); return fd; }
5379 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5383 echores "$_esd"
5385 if test "$_esd" = yes ; then
5386 def_esd='#define CONFIG_ESD 1'
5387 _aomodules="esd $_aomodules"
5388 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5389 extra_cflags="$extra_cflags $(esd-config --cflags)"
5391 echocheck "esd_get_latency()"
5392 cat > $TMPC << EOF
5393 #include <esd.h>
5394 int main(void) { return esd_get_latency(0); }
5396 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5397 echores "$_esd_latency"
5398 else
5399 def_esd='#undef CONFIG_ESD'
5400 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5401 _noaomodules="esd $_noaomodules"
5405 echocheck "NAS"
5406 if test "$_nas" = auto ; then
5407 cat > $TMPC << EOF
5408 #include <audio/audiolib.h>
5409 int main(void) { return 0; }
5411 _nas=no
5412 cc_check $_ld_lm -laudio -lXt && _nas=yes
5414 if test "$_nas" = yes ; then
5415 def_nas='#define CONFIG_NAS 1'
5416 libs_mplayer="$libs_mplayer -laudio -lXt"
5417 _aomodules="nas $_aomodules"
5418 else
5419 _noaomodules="nas $_noaomodules"
5420 def_nas='#undef CONFIG_NAS'
5422 echores "$_nas"
5425 echocheck "pulse"
5426 if test "$_pulse" = auto ; then
5427 _pulse=no
5428 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5430 cat > $TMPC << EOF
5431 #include <pulse/pulseaudio.h>
5432 int main(void) { return 0; }
5434 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5438 echores "$_pulse"
5440 if test "$_pulse" = yes ; then
5441 def_pulse='#define CONFIG_PULSE 1'
5442 _aomodules="pulse $_aomodules"
5443 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5444 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5445 else
5446 def_pulse='#undef CONFIG_PULSE'
5447 _noaomodules="pulse $_noaomodules"
5451 echocheck "JACK"
5452 if test "$_jack" = auto ; then
5453 _jack=yes
5455 cat > $TMPC << EOF
5456 #include <jack/jack.h>
5457 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5459 if cc_check -ljack ; then
5460 libs_mplayer="$libs_mplayer -ljack"
5461 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5462 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5463 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5464 else
5465 _jack=no
5469 if test "$_jack" = yes ; then
5470 def_jack='#define CONFIG_JACK 1'
5471 _aomodules="jack $_aomodules"
5472 else
5473 _noaomodules="jack $_noaomodules"
5475 echores "$_jack"
5477 echocheck "OpenAL"
5478 if test "$_openal" = auto ; then
5479 _openal=no
5480 cat > $TMPC << EOF
5481 #ifdef OPENAL_AL_H
5482 #include <OpenAL/al.h>
5483 #else
5484 #include <AL/al.h>
5485 #endif
5486 int main(void) {
5487 alSourceQueueBuffers(0, 0, 0);
5488 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5489 return 0;
5492 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5493 cc_check $I && _openal=yes && break
5494 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5495 done
5496 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5498 if test "$_openal" = yes ; then
5499 def_openal='#define CONFIG_OPENAL 1'
5500 _aomodules="openal $_aomodules"
5501 else
5502 _noaomodules="openal $_noaomodules"
5504 echores "$_openal"
5506 echocheck "ALSA audio"
5507 if test "$_alloca" != yes ; then
5508 _alsa=no
5509 _res_comment="alloca missing"
5511 if test "$_alsa" != no ; then
5512 _alsa=no
5513 cat > $TMPC << EOF
5514 #include <sys/time.h>
5515 #include <sys/asoundlib.h>
5516 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5517 #error "alsa version != 0.5.x"
5518 #endif
5519 int main(void) { return 0; }
5521 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5523 cat > $TMPC << EOF
5524 #include <sys/time.h>
5525 #include <sys/asoundlib.h>
5526 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5527 #error "alsa version != 0.9.x"
5528 #endif
5529 int main(void) { return 0; }
5531 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5532 cat > $TMPC << EOF
5533 #include <sys/time.h>
5534 #include <alsa/asoundlib.h>
5535 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5536 #error "alsa version != 0.9.x"
5537 #endif
5538 int main(void) { return 0; }
5540 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5542 cat > $TMPC << EOF
5543 #include <sys/time.h>
5544 #include <sys/asoundlib.h>
5545 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5546 #error "alsa version != 1.0.x"
5547 #endif
5548 int main(void) { return 0; }
5550 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5551 cat > $TMPC << EOF
5552 #include <sys/time.h>
5553 #include <alsa/asoundlib.h>
5554 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5555 #error "alsa version != 1.0.x"
5556 #endif
5557 int main(void) { return 0; }
5559 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5561 def_alsa='#undef CONFIG_ALSA'
5562 def_alsa5='#undef CONFIG_ALSA5'
5563 def_alsa9='#undef CONFIG_ALSA9'
5564 def_alsa1x='#undef CONFIG_ALSA1X'
5565 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5566 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5567 if test "$_alsaver" ; then
5568 _alsa=yes
5569 if test "$_alsaver" = '0.5.x' ; then
5570 _alsa5=yes
5571 _aomodules="alsa5 $_aomodules"
5572 def_alsa5='#define CONFIG_ALSA5 1'
5573 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5574 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5575 elif test "$_alsaver" = '0.9.x-sys' ; then
5576 _alsa9=yes
5577 _aomodules="alsa $_aomodules"
5578 def_alsa='#define CONFIG_ALSA 1'
5579 def_alsa9='#define CONFIG_ALSA9 1'
5580 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5581 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5582 elif test "$_alsaver" = '0.9.x-alsa' ; then
5583 _alsa9=yes
5584 _aomodules="alsa $_aomodules"
5585 def_alsa='#define CONFIG_ALSA 1'
5586 def_alsa9='#define CONFIG_ALSA9 1'
5587 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5588 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5589 elif test "$_alsaver" = '1.0.x-sys' ; then
5590 _alsa1x=yes
5591 _aomodules="alsa $_aomodules"
5592 def_alsa='#define CONFIG_ALSA 1'
5593 def_alsa1x="#define CONFIG_ALSA1X 1"
5594 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5595 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5596 elif test "$_alsaver" = '1.0.x-alsa' ; then
5597 _alsa1x=yes
5598 _aomodules="alsa $_aomodules"
5599 def_alsa='#define CONFIG_ALSA 1'
5600 def_alsa1x="#define CONFIG_ALSA1X 1"
5601 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5602 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5603 else
5604 _alsa=no
5605 _res_comment="unknown version"
5607 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5608 else
5609 _noaomodules="alsa $_noaomodules"
5611 echores "$_alsa"
5614 echocheck "Sun audio"
5615 if test "$_sunaudio" = auto ; then
5616 cat > $TMPC << EOF
5617 #include <sys/types.h>
5618 #include <sys/audioio.h>
5619 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5621 _sunaudio=no
5622 cc_check && _sunaudio=yes
5624 if test "$_sunaudio" = yes ; then
5625 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5626 _aomodules="sun $_aomodules"
5627 else
5628 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5629 _noaomodules="sun $_noaomodules"
5631 echores "$_sunaudio"
5634 def_mlib='#define CONFIG_MLIB 0'
5635 if sunos; then
5636 echocheck "Sun mediaLib"
5637 if test "$_mlib" = auto ; then
5638 _mlib=no
5639 cat > $TMPC << EOF
5640 #include <mlib.h>
5641 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5643 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5645 echores "$_mlib"
5646 fi #if sunos
5649 if darwin; then
5650 echocheck "CoreAudio"
5651 if test "$_coreaudio" = auto ; then
5652 cat > $TMPC <<EOF
5653 #include <CoreAudio/CoreAudio.h>
5654 #include <AudioToolbox/AudioToolbox.h>
5655 #include <AudioUnit/AudioUnit.h>
5656 int main(void) { return 0; }
5658 _coreaudio=no
5659 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5661 if test "$_coreaudio" = yes ; then
5662 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5663 def_coreaudio='#define CONFIG_COREAUDIO 1'
5664 _aomodules="coreaudio $_aomodules"
5665 else
5666 def_coreaudio='#undef CONFIG_COREAUDIO'
5667 _noaomodules="coreaudio $_noaomodules"
5669 echores $_coreaudio
5670 fi #if darwin
5673 if irix; then
5674 echocheck "SGI audio"
5675 if test "$_sgiaudio" = auto ; then
5676 # check for SGI audio
5677 cat > $TMPC << EOF
5678 #include <dmedia/audio.h>
5679 int main(void) { return 0; }
5681 _sgiaudio=no
5682 cc_check && _sgiaudio=yes
5684 if test "$_sgiaudio" = "yes" ; then
5685 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5686 libs_mplayer="$libs_mplayer -laudio"
5687 _aomodules="sgi $_aomodules"
5688 else
5689 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5690 _noaomodules="sgi $_noaomodules"
5692 echores "$_sgiaudio"
5693 fi #if irix
5696 if os2 ; then
5697 echocheck "DART"
5698 if test "$_dart" = auto; then
5699 cat > $TMPC << EOF
5700 #include <os2.h>
5701 #include <dart.h>
5702 int main( void ) { return 0; }
5704 _dart=no;
5705 cc_check -ldart && _dart=yes
5707 if test "$_dart" = yes ; then
5708 def_dart='#define CONFIG_DART 1'
5709 libs_mplayer="$libs_mplayer -ldart"
5710 _aomodules="dart $_aomodules"
5711 else
5712 def_dart='#undef CONFIG_DART'
5713 _noaomodules="dart $_noaomodules"
5715 echores "$_dart"
5716 fi #if os2
5719 # set default CD/DVD devices
5720 if win32 || os2 ; then
5721 default_cdrom_device="D:"
5722 elif darwin ; then
5723 default_cdrom_device="/dev/disk1"
5724 elif dragonfly ; then
5725 default_cdrom_device="/dev/cd0"
5726 elif freebsd ; then
5727 default_cdrom_device="/dev/acd0"
5728 elif openbsd ; then
5729 default_cdrom_device="/dev/rcd0a"
5730 elif sunos ; then
5731 default_cdrom_device="/vol/dev/aliases/cdrom0"
5732 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5733 # file system and the volfs service.
5734 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5735 elif amigaos ; then
5736 default_cdrom_device="a1ide.device:2"
5737 else
5738 default_cdrom_device="/dev/cdrom"
5741 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5742 default_dvd_device=$default_cdrom_device
5743 elif darwin ; then
5744 default_dvd_device="/dev/rdiskN"
5745 else
5746 default_dvd_device="/dev/dvd"
5750 echocheck "VCD support"
5751 if test "$_vcd" = auto; then
5752 _vcd=no
5753 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5754 _vcd=yes
5755 elif mingw32; then
5756 cat > $TMPC << EOF
5757 #include <ddk/ntddcdrm.h>
5758 int main(void) { return 0; }
5760 cc_check && _vcd=yes
5763 if test "$_vcd" = yes; then
5764 _inputmodules="vcd $_inputmodules"
5765 def_vcd='#define CONFIG_VCD 1'
5766 else
5767 def_vcd='#undef CONFIG_VCD'
5768 _noinputmodules="vcd $_noinputmodules"
5769 _res_comment="not supported on this OS"
5771 echores "$_vcd"
5775 echocheck "dvdread"
5776 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5777 _dvdread_internal=no
5779 if test "$_dvdread_internal" = auto ; then
5780 _dvdread_internal=no
5781 _dvdread=no
5782 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5783 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5784 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5785 || darwin || win32 || os2; then
5786 _dvdread_internal=yes
5787 _dvdread=yes
5788 extra_cflags="-Ilibdvdread4 $extra_cflags"
5790 elif test "$_dvdread" = auto ; then
5791 _dvdread=no
5792 if test "$_dl" = yes; then
5793 cat > $TMPC << EOF
5794 #include <inttypes.h>
5795 #include <dvdread/dvd_reader.h>
5796 #include <dvdread/ifo_types.h>
5797 #include <dvdread/ifo_read.h>
5798 #include <dvdread/nav_read.h>
5799 int main(void) { return 0; }
5801 _dvdreadcflags=$($_dvdreadconfig --cflags)
5802 _dvdreadlibs=$($_dvdreadconfig --libs)
5803 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5804 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5805 _dvdread=yes
5806 extra_cflags="$extra_cflags $_dvdreadcflags"
5807 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5808 _res_comment="external"
5813 if test "$_dvdread_internal" = yes; then
5814 def_dvdread='#define CONFIG_DVDREAD 1'
5815 _inputmodules="dvdread(internal) $_inputmodules"
5816 _largefiles=yes
5817 _res_comment="internal"
5818 elif test "$_dvdread" = yes; then
5819 def_dvdread='#define CONFIG_DVDREAD 1'
5820 _largefiles=yes
5821 extra_ldflags="$extra_ldflags -ldvdread"
5822 _inputmodules="dvdread(external) $_inputmodules"
5823 _res_comment="external"
5824 else
5825 def_dvdread='#undef CONFIG_DVDREAD'
5826 _noinputmodules="dvdread $_noinputmodules"
5828 echores "$_dvdread"
5831 echocheck "internal libdvdcss"
5832 if test "$_libdvdcss_internal" = auto ; then
5833 _libdvdcss_internal=no
5834 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5835 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5837 if test "$_libdvdcss_internal" = yes ; then
5838 if linux || netbsd || openbsd || bsdos ; then
5839 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5840 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5841 elif freebsd || dragonfly ; then
5842 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5843 elif darwin ; then
5844 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5845 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5846 elif cygwin ; then
5847 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5848 elif beos ; then
5849 cflags_libdvdcss="-DSYS_BEOS"
5850 elif os2 ; then
5851 cflags_libdvdcss="-DSYS_OS2"
5853 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5854 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5855 _inputmodules="libdvdcss(internal) $_inputmodules"
5856 _largefiles=yes
5857 else
5858 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5860 echores "$_libdvdcss_internal"
5863 echocheck "cdparanoia"
5864 if test "$_cdparanoia" = auto ; then
5865 cat > $TMPC <<EOF
5866 #include <cdda_interface.h>
5867 #include <cdda_paranoia.h>
5868 // This need a better test. How ?
5869 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5871 _cdparanoia=no
5872 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5873 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5874 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5875 done
5877 if test "$_cdparanoia" = yes ; then
5878 _cdda='yes'
5879 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5880 openbsd && extra_ldflags="$extra_ldflags -lutil"
5882 echores "$_cdparanoia"
5885 echocheck "libcdio"
5886 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5887 cat > $TMPC << EOF
5888 #include <stdio.h>
5889 #include <cdio/version.h>
5890 #include <cdio/cdda.h>
5891 #include <cdio/paranoia.h>
5892 int main(void) {
5893 void *test = cdda_verbose_set;
5894 printf("%s\n", CDIO_VERSION);
5895 return test == (void *)1;
5898 _libcdio=no
5899 for _ld_tmp in "" "-lwinmm" ; do
5900 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5901 cc_check $_ld_tmp $_ld_lm \
5902 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5903 done
5904 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5905 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5906 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5907 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5908 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5911 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5912 _cdda='yes'
5913 def_libcdio='#define CONFIG_LIBCDIO 1'
5914 def_havelibcdio='yes'
5915 else
5916 if test "$_cdparanoia" = yes ; then
5917 _res_comment="using cdparanoia"
5919 def_libcdio='#undef CONFIG_LIBCDIO'
5920 def_havelibcdio='no'
5922 echores "$_libcdio"
5924 if test "$_cdda" = yes ; then
5925 test $_cddb = auto && test $_network = yes && _cddb=yes
5926 def_cdparanoia='#define CONFIG_CDDA 1'
5927 _inputmodules="cdda $_inputmodules"
5928 else
5929 def_cdparanoia='#undef CONFIG_CDDA'
5930 _noinputmodules="cdda $_noinputmodules"
5933 if test "$_cddb" = yes ; then
5934 def_cddb='#define CONFIG_CDDB 1'
5935 _inputmodules="cddb $_inputmodules"
5936 else
5937 _cddb=no
5938 def_cddb='#undef CONFIG_CDDB'
5939 _noinputmodules="cddb $_noinputmodules"
5942 echocheck "bitmap font support"
5943 if test "$_bitmap_font" = yes ; then
5944 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5945 else
5946 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5948 echores "$_bitmap_font"
5951 echocheck "freetype >= 2.0.9"
5953 # freetype depends on iconv
5954 if test "$_iconv" = no ; then
5955 _freetype=no
5956 _res_comment="iconv support needed"
5959 if test "$_freetype" = auto ; then
5960 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5961 cat > $TMPC << EOF
5962 #include <stdio.h>
5963 #include <ft2build.h>
5964 #include FT_FREETYPE_H
5965 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5966 #error "Need FreeType 2.0.9 or newer"
5967 #endif
5968 int main(void) {
5969 FT_Library library;
5970 FT_Int major=-1,minor=-1,patch=-1;
5971 int err=FT_Init_FreeType(&library);
5972 return 0;
5975 _freetype=no
5976 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5977 else
5978 _freetype=no
5981 if test "$_freetype" = yes ; then
5982 def_freetype='#define CONFIG_FREETYPE 1'
5983 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5984 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5985 else
5986 def_freetype='#undef CONFIG_FREETYPE'
5988 echores "$_freetype"
5990 if test "$_freetype" = no ; then
5991 _fontconfig=no
5992 _res_comment="FreeType support needed"
5994 echocheck "fontconfig"
5995 if test "$_fontconfig" = auto ; then
5996 cat > $TMPC << EOF
5997 #include <stdio.h>
5998 #include <stdlib.h>
5999 #include <fontconfig/fontconfig.h>
6000 int main(void) {
6001 int err = FcInit();
6002 if (err == FcFalse) {
6003 printf("Couldn't initialize fontconfig lib\n");
6004 exit(err);
6006 return 0;
6009 _fontconfig=no
6010 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
6011 _ld_tmp="-lfontconfig $_ld_tmp"
6012 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6013 done
6014 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6015 _inc_tmp=$($_pkg_config --cflags fontconfig)
6016 _ld_tmp=$($_pkg_config --libs fontconfig)
6017 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6018 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6021 if test "$_fontconfig" = yes ; then
6022 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6023 else
6024 def_fontconfig='#undef CONFIG_FONTCONFIG'
6026 echores "$_fontconfig"
6029 echocheck "SSA/ASS support"
6030 if test "$_ass" = auto -o "$_ass" = yes ; then
6031 if $_pkg_config libass; then
6032 _ass=yes
6033 def_ass='#define CONFIG_ASS 1'
6034 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
6035 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
6036 else
6037 _ass=no
6038 def_ass='#undef CONFIG_ASS'
6040 else
6041 def_ass='#undef CONFIG_ASS'
6043 echores "$_ass"
6046 echocheck "fribidi with charsets"
6047 if test "$_fribidi" = auto ; then
6048 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
6049 cat > $TMPC << EOF
6050 #include <stdio.h>
6051 /* workaround for fribidi 0.10.4 and below */
6052 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6053 #include <fribidi/fribidi.h>
6054 int main(void) {
6055 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6056 printf("Fribidi headers are not consistents with the library!\n");
6057 exit(1);
6059 return 0;
6062 _fribidi=no
6063 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && _fribidi=yes
6064 else
6065 _fribidi=no
6068 if test "$_fribidi" = yes ; then
6069 def_fribidi='#define CONFIG_FRIBIDI 1'
6070 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6071 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6072 else
6073 def_fribidi='#undef CONFIG_FRIBIDI'
6075 echores "$_fribidi"
6078 echocheck "ENCA"
6079 if test "$_enca" = auto ; then
6080 cat > $TMPC << EOF
6081 #include <sys/types.h>
6082 #include <enca.h>
6083 int main(void) {
6084 const char **langs;
6085 size_t langcnt;
6086 langs = enca_get_languages(&langcnt);
6087 return 0;
6090 _enca=no
6091 cc_check -lenca $_ld_lm && _enca=yes
6093 if test "$_enca" = yes ; then
6094 def_enca='#define CONFIG_ENCA 1'
6095 extra_ldflags="$extra_ldflags -lenca"
6096 else
6097 def_enca='#undef CONFIG_ENCA'
6099 echores "$_enca"
6102 echocheck "zlib"
6103 cat > $TMPC << EOF
6104 #include <zlib.h>
6105 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6107 _zlib=no
6108 cc_check -lz && _zlib=yes
6109 if test "$_zlib" = yes ; then
6110 def_zlib='#define CONFIG_ZLIB 1'
6111 extra_ldflags="$extra_ldflags -lz"
6112 else
6113 def_zlib='#define CONFIG_ZLIB 0'
6115 echores "$_zlib"
6118 echocheck "bzlib"
6119 bzlib=no
6120 def_bzlib='#define CONFIG_BZLIB 0'
6121 cat > $TMPC << EOF
6122 #include <bzlib.h>
6123 int main(void) { BZ2_bzlibVersion(); return 0; }
6125 cc_check -lbz2 && bzlib=yes
6126 if test "$bzlib" = yes ; then
6127 def_bzlib='#define CONFIG_BZLIB 1'
6128 extra_ldflags="$extra_ldflags -lbz2"
6130 echores "$bzlib"
6133 echocheck "RTC"
6134 if test "$_rtc" = auto ; then
6135 cat > $TMPC << EOF
6136 #include <sys/ioctl.h>
6137 #ifdef __linux__
6138 #include <linux/rtc.h>
6139 #else
6140 #include <rtc.h>
6141 #define RTC_PIE_ON RTCIO_PIE_ON
6142 #endif
6143 int main(void) { return RTC_PIE_ON; }
6145 _rtc=no
6146 cc_check && _rtc=yes
6147 ppc && _rtc=no
6149 if test "$_rtc" = yes ; then
6150 def_rtc='#define HAVE_RTC 1'
6151 else
6152 def_rtc='#undef HAVE_RTC'
6154 echores "$_rtc"
6157 echocheck "liblzo2 support"
6158 if test "$_liblzo" = auto ; then
6159 _liblzo=no
6160 cat > $TMPC << EOF
6161 #include <lzo/lzo1x.h>
6162 int main(void) { lzo_init();return 0; }
6164 cc_check -llzo2 && _liblzo=yes
6166 if test "$_liblzo" = yes ; then
6167 def_liblzo='#define CONFIG_LIBLZO 1'
6168 extra_ldflags="$extra_ldflags -llzo2"
6169 _codecmodules="liblzo $_codecmodules"
6170 else
6171 def_liblzo='#undef CONFIG_LIBLZO'
6172 _nocodecmodules="liblzo $_nocodecmodules"
6174 echores "$_liblzo"
6177 echocheck "mad support"
6178 if test "$_mad" = auto ; then
6179 _mad=no
6180 cat > $TMPC << EOF
6181 #include <mad.h>
6182 int main(void) { return 0; }
6184 cc_check -lmad && _mad=yes
6186 if test "$_mad" = yes ; then
6187 def_mad='#define CONFIG_LIBMAD 1'
6188 extra_ldflags="$extra_ldflags -lmad"
6189 _codecmodules="libmad $_codecmodules"
6190 else
6191 def_mad='#undef CONFIG_LIBMAD'
6192 _nocodecmodules="libmad $_nocodecmodules"
6194 echores "$_mad"
6196 echocheck "Twolame"
6197 if test "$_twolame" = auto ; then
6198 cat > $TMPC <<EOF
6199 #include <twolame.h>
6200 int main(void) { twolame_init(); return 0; }
6202 _twolame=no
6203 cc_check -ltwolame $_ld_lm && _twolame=yes
6205 if test "$_twolame" = yes ; then
6206 def_twolame='#define CONFIG_TWOLAME 1'
6207 libs_mencoder="$libs_mencoder -ltwolame"
6208 _codecmodules="twolame $_codecmodules"
6209 else
6210 def_twolame='#undef CONFIG_TWOLAME'
6211 _nocodecmodules="twolame $_nocodecmodules"
6213 echores "$_twolame"
6215 echocheck "Toolame"
6216 if test "$_toolame" = auto ; then
6217 _toolame=no
6218 if test "$_twolame" = yes ; then
6219 _res_comment="disabled by twolame"
6220 else
6221 cat > $TMPC <<EOF
6222 #include <toolame.h>
6223 int main(void) { toolame_init(); return 0; }
6225 cc_check -ltoolame $_ld_lm && _toolame=yes
6228 if test "$_toolame" = yes ; then
6229 def_toolame='#define CONFIG_TOOLAME 1'
6230 libs_mencoder="$libs_mencoder -ltoolame"
6231 _codecmodules="toolame $_codecmodules"
6232 else
6233 def_toolame='#undef CONFIG_TOOLAME'
6234 _nocodecmodules="toolame $_nocodecmodules"
6236 if test "$_toolamedir" ; then
6237 _res_comment="using $_toolamedir"
6239 echores "$_toolame"
6241 echocheck "OggVorbis support"
6242 if test "$_tremor_internal" = yes; then
6243 _libvorbis=no
6244 elif test "$_tremor" = auto; then
6245 _tremor=no
6246 cat > $TMPC << EOF
6247 #include <tremor/ivorbiscodec.h>
6248 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6250 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6252 if test "$_libvorbis" = auto; then
6253 _libvorbis=no
6254 cat > $TMPC << EOF
6255 #include <vorbis/codec.h>
6256 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6258 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6260 if test "$_tremor_internal" = yes ; then
6261 _vorbis=yes
6262 def_vorbis='#define CONFIG_OGGVORBIS 1'
6263 def_tremor='#define CONFIG_TREMOR 1'
6264 _codecmodules="tremor(internal) $_codecmodules"
6265 _res_comment="internal Tremor"
6266 if test "$_tremor_low" = yes ; then
6267 cflags_tremor_low="-D_LOW_ACCURACY_"
6268 _res_comment="internal low accuracy Tremor"
6270 elif test "$_tremor" = yes ; then
6271 _vorbis=yes
6272 def_vorbis='#define CONFIG_OGGVORBIS 1'
6273 def_tremor='#define CONFIG_TREMOR 1'
6274 _codecmodules="tremor(external) $_codecmodules"
6275 _res_comment="external Tremor"
6276 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6277 elif test "$_libvorbis" = yes ; then
6278 _vorbis=yes
6279 def_vorbis='#define CONFIG_OGGVORBIS 1'
6280 _codecmodules="libvorbis $_codecmodules"
6281 _res_comment="libvorbis"
6282 extra_ldflags="$extra_ldflags -lvorbis -logg"
6283 else
6284 _vorbis=no
6285 _nocodecmodules="libvorbis $_nocodecmodules"
6287 echores "$_vorbis"
6289 echocheck "libspeex (version >= 1.1 required)"
6290 if test "$_speex" = auto ; then
6291 _speex=no
6292 cat > $TMPC << EOF
6293 #include <speex/speex.h>
6294 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6296 cc_check -lspeex $_ld_lm && _speex=yes
6298 if test "$_speex" = yes ; then
6299 def_speex='#define CONFIG_SPEEX 1'
6300 extra_ldflags="$extra_ldflags -lspeex"
6301 _codecmodules="speex $_codecmodules"
6302 else
6303 def_speex='#undef CONFIG_SPEEX'
6304 _nocodecmodules="speex $_nocodecmodules"
6306 echores "$_speex"
6308 echocheck "OggTheora support"
6309 if test "$_theora" = auto ; then
6310 _theora=no
6311 cat > $TMPC << EOF
6312 #include <theora/theora.h>
6313 #include <string.h>
6314 int main(void) {
6315 /* Theora is in flux, make sure that all interface routines and datatypes
6316 * exist and work the way we expect it, so we don't break MPlayer. */
6317 ogg_packet op;
6318 theora_comment tc;
6319 theora_info inf;
6320 theora_state st;
6321 yuv_buffer yuv;
6322 int r;
6323 double t;
6325 theora_info_init(&inf);
6326 theora_comment_init(&tc);
6328 return 0;
6330 /* we don't want to execute this kind of nonsense; just for making sure
6331 * that compilation works... */
6332 memset(&op, 0, sizeof(op));
6333 r = theora_decode_header(&inf, &tc, &op);
6334 r = theora_decode_init(&st, &inf);
6335 t = theora_granule_time(&st, op.granulepos);
6336 r = theora_decode_packetin(&st, &op);
6337 r = theora_decode_YUVout(&st, &yuv);
6338 theora_clear(&st);
6340 return 0;
6343 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6344 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6345 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6346 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6347 if test _theora = no; then
6348 _ld_theora="-ltheora -logg"
6349 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6351 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6352 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6353 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6354 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6355 extra_ldflags="$extra_ldflags $_ld_theora" &&
6356 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6357 if test _theora = no; then
6358 _ld_theora="-ltheora -logg"
6359 cc_check tremor/bitwise.c $_ld_theora &&
6360 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6364 if test "$_theora" = yes ; then
6365 def_theora='#define CONFIG_OGGTHEORA 1'
6366 _codecmodules="libtheora $_codecmodules"
6367 # when --enable-theora is forced, we'd better provide a probably sane
6368 # $_ld_theora than nothing
6369 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6370 else
6371 def_theora='#undef CONFIG_OGGTHEORA'
6372 _nocodecmodules="libtheora $_nocodecmodules"
6374 echores "$_theora"
6376 echocheck "internal mp3lib support"
6377 if test "$_mp3lib" = auto ; then
6378 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6380 if test "$_mp3lib" = yes ; then
6381 def_mp3lib='#define CONFIG_MP3LIB 1'
6382 _codecmodules="mp3lib(internal) $_codecmodules"
6383 else
6384 def_mp3lib='#undef CONFIG_MP3LIB'
6385 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6387 echores "$_mp3lib"
6389 echocheck "liba52 support"
6390 if test "$_liba52_internal" = auto ; then
6391 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6393 def_liba52='#undef CONFIG_LIBA52'
6394 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6395 if test "$_liba52_internal" = yes ; then
6396 _liba52=yes
6397 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6398 _res_comment="internal"
6399 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6400 _liba52=no
6401 cat > $TMPC << EOF
6402 #include <inttypes.h>
6403 #include <a52dec/a52.h>
6404 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6406 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6408 if test "$_liba52" = yes ; then
6409 def_liba52='#define CONFIG_LIBA52 1'
6410 _codecmodules="liba52($_res_comment) $_codecmodules"
6411 else
6412 _nocodecmodules="liba52 $_nocodecmodules"
6414 echores "$_liba52"
6416 echocheck "internal libmpeg2 support"
6417 if test "$_libmpeg2" = auto ; then
6418 _libmpeg2=yes
6419 if alpha && test cc_vendor=gnu; then
6420 case $cc_version in
6421 2*|3.0*|3.1*) # cannot compile MVI instructions
6422 _libmpeg2=no
6423 _res_comment="broken gcc"
6425 esac
6428 if test "$_libmpeg2" = yes ; then
6429 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6430 _codecmodules="libmpeg2(internal) $_codecmodules"
6431 else
6432 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6433 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6435 echores "$_libmpeg2"
6437 echocheck "libdca support"
6438 if test "$_libdca" = auto ; then
6439 _libdca=no
6440 cat > $TMPC << EOF
6441 #include <inttypes.h>
6442 #include <dts.h>
6443 int main(void) { dts_init(0); return 0; }
6445 for _ld_dca in -ldts -ldca ; do
6446 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6447 && _libdca=yes && break
6448 done
6450 if test "$_libdca" = yes ; then
6451 def_libdca='#define CONFIG_LIBDCA 1'
6452 _codecmodules="libdca $_codecmodules"
6453 else
6454 def_libdca='#undef CONFIG_LIBDCA'
6455 _nocodecmodules="libdca $_nocodecmodules"
6457 echores "$_libdca"
6459 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6460 if test "$_musepack" = auto ; then
6461 _musepack=no
6462 cat > $TMPC << EOF
6463 #include <stddef.h>
6464 #include <mpcdec/mpcdec.h>
6465 int main(void) {
6466 mpc_streaminfo info;
6467 mpc_decoder decoder;
6468 mpc_decoder_set_streaminfo(&decoder, &info);
6469 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6470 return 0;
6473 cc_check -lmpcdec $_ld_lm && _musepack=yes
6475 if test "$_musepack" = yes ; then
6476 def_musepack='#define CONFIG_MUSEPACK 1'
6477 extra_ldflags="$extra_ldflags -lmpcdec"
6478 _codecmodules="musepack $_codecmodules"
6479 else
6480 def_musepack='#undef CONFIG_MUSEPACK'
6481 _nocodecmodules="musepack $_nocodecmodules"
6483 echores "$_musepack"
6486 echocheck "FAAC support"
6487 if test "$_faac" = auto ; then
6488 cat > $TMPC <<EOF
6489 #include <inttypes.h>
6490 #include <faac.h>
6491 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6493 _faac=no
6494 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6495 cc_check -O2 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6496 done
6498 if test "$_faac" = yes ; then
6499 def_faac="#define CONFIG_FAAC 1"
6500 _codecmodules="faac $_codecmodules"
6501 else
6502 def_faac="#undef CONFIG_FAAC"
6503 _nocodecmodules="faac $_nocodecmodules"
6505 echores "$_faac"
6508 echocheck "FAAD2 support"
6509 if test "$_faad_internal" = auto ; then
6510 if x86_32 && test cc_vendor=gnu; then
6511 case $cc_version in
6512 3.1*|3.2) # ICE/insn with these versions
6513 _faad_internal=no
6514 _res_comment="broken gcc"
6517 _faad=yes
6518 _faad_internal=yes
6520 esac
6521 else
6522 _faad=yes
6523 _faad_internal=yes
6526 if test "$_faad" = auto ; then
6527 cat > $TMPC << EOF
6528 #include <faad.h>
6529 #ifndef FAAD_MIN_STREAMSIZE
6530 #error Too old version
6531 #endif
6532 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6533 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6535 cc_check -lfaad $_ld_lm && _faad=yes
6538 def_faad='#undef CONFIG_FAAD'
6539 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6540 if test "$_faad_internal" = yes ; then
6541 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6542 _res_comment="internal floating-point"
6543 if test "$_faad_fixed" = yes ; then
6544 # The FIXED_POINT implementation of FAAD2 improves performance
6545 # on some platforms, especially for SBR files.
6546 cflags_faad_fixed="-DFIXED_POINT"
6547 _res_comment="internal fixed-point"
6549 elif test "$_faad" = yes ; then
6550 extra_ldflags="$extra_ldflags -lfaad"
6553 if test "$_faad" = yes ; then
6554 def_faad='#define CONFIG_FAAD 1'
6555 if test "$_faad_internal" = yes ; then
6556 _codecmodules="faad2(internal) $_codecmodules"
6557 else
6558 _codecmodules="faad2 $_codecmodules"
6560 else
6561 _faad=no
6562 _nocodecmodules="faad2 $_nocodecmodules"
6564 echores "$_faad"
6567 echocheck "LADSPA plugin support"
6568 if test "$_ladspa" = auto ; then
6569 cat > $TMPC <<EOF
6570 #include <stdio.h>
6571 #include <ladspa.h>
6572 int main(void) {
6573 const LADSPA_Descriptor *ld = NULL;
6574 return 0;
6577 _ladspa=no
6578 cc_check && _ladspa=yes
6580 if test "$_ladspa" = yes; then
6581 def_ladspa="#define CONFIG_LADSPA 1"
6582 else
6583 def_ladspa="#undef CONFIG_LADSPA"
6585 echores "$_ladspa"
6588 echocheck "libbs2b audio filter support"
6589 if test "$_libbs2b" = auto ; then
6590 cat > $TMPC <<EOF
6591 #include <bs2b.h>
6592 #if BS2B_VERSION_MAJOR < 3
6593 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6594 #endif
6595 int main(void) {
6596 t_bs2bdp filter;
6597 filter=bs2b_open();
6598 bs2b_close(filter);
6599 return 0;
6602 _libbs2b=no
6603 if $_pkg_config --exists libbs2b ; then
6604 _inc_tmp=$($_pkg_config --cflags libbs2b)
6605 _ld_tmp=$($_pkg_config --libs libbs2b)
6606 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6607 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6608 else
6609 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6610 -I/usr/local/include/bs2b ; do
6611 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6612 extra_ldflags="$extra_ldflags -lbs2b"
6613 extra_cflags="$extra_cflags $_inc_tmp"
6614 _libbs2b=yes
6615 break
6617 done
6620 def_libbs2b="#undef CONFIG_LIBBS2B"
6621 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6622 echores "$_libbs2b"
6625 if test -z "$_codecsdir" ; then
6626 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6627 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6628 if test -d "$dir" ; then
6629 _codecsdir="$dir"
6630 break;
6632 done
6634 # Fall back on default directory.
6635 if test -z "$_codecsdir" ; then
6636 _codecsdir="$_libdir/codecs"
6637 mingw32 && _codecsdir="codecs"
6638 os2 && _codecsdir="codecs"
6642 echocheck "Win32 codecs"
6643 if test "$_win32dll" = auto ; then
6644 _win32dll=no
6645 if x86_32 && ! qnx; then
6646 _win32dll=yes
6649 if test "$_win32dll" = yes ; then
6650 def_win32dll='#define CONFIG_WIN32DLL 1'
6651 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6652 _res_comment="using $_win32codecsdir"
6653 if ! win32 ; then
6654 def_win32_loader='#define WIN32_LOADER 1'
6655 _win32_emulation=yes
6656 else
6657 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6658 _res_comment="using native windows"
6660 _codecmodules="win32 $_codecmodules"
6661 else
6662 def_win32dll='#undef CONFIG_WIN32DLL'
6663 def_win32_loader='#undef WIN32_LOADER'
6664 _nocodecmodules="win32 $_nocodecmodules"
6666 echores "$_win32dll"
6669 echocheck "XAnim codecs"
6670 if test "$_xanim" = auto ; then
6671 _xanim=no
6672 _res_comment="dynamic loader support needed"
6673 if test "$_dl" = yes ; then
6674 _xanim=yes
6677 if test "$_xanim" = yes ; then
6678 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6679 def_xanim='#define CONFIG_XANIM 1'
6680 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6681 _codecmodules="xanim $_codecmodules"
6682 _res_comment="using $_xanimcodecsdir"
6683 else
6684 def_xanim='#undef CONFIG_XANIM'
6685 def_xanim_path='#undef XACODEC_PATH'
6686 _nocodecmodules="xanim $_nocodecmodules"
6688 echores "$_xanim"
6691 echocheck "RealPlayer codecs"
6692 if test "$_real" = auto ; then
6693 _real=no
6694 _res_comment="dynamic loader support needed"
6695 if test "$_dl" = yes || test "$_win32dll" = yes &&
6696 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6697 _real=yes
6700 if test "$_real" = yes ; then
6701 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6702 def_real='#define CONFIG_REALCODECS 1'
6703 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6704 _codecmodules="real $_codecmodules"
6705 _res_comment="using $_realcodecsdir"
6706 else
6707 def_real='#undef CONFIG_REALCODECS'
6708 def_real_path="#undef REALCODEC_PATH"
6709 _nocodecmodules="real $_nocodecmodules"
6711 echores "$_real"
6714 echocheck "QuickTime codecs"
6715 _qtx_emulation=no
6716 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6717 if test "$_qtx" = auto ; then
6718 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
6720 if test "$_qtx" = yes ; then
6721 def_qtx='#define CONFIG_QTX_CODECS 1'
6722 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6723 _codecmodules="qtx $_codecmodules"
6724 darwin || win32 || _qtx_emulation=yes
6725 else
6726 def_qtx='#undef CONFIG_QTX_CODECS'
6727 _nocodecmodules="qtx $_nocodecmodules"
6729 echores "$_qtx"
6731 echocheck "Nemesi Streaming Media libraries"
6732 if test "$_nemesi" = auto && test "$_network" = yes ; then
6733 _nemesi=no
6734 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6735 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6736 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6737 _nemesi=yes
6740 if test "$_nemesi" = yes; then
6741 _native_rtsp=no
6742 def_nemesi='#define CONFIG_LIBNEMESI 1'
6743 _inputmodules="nemesi $_inputmodules"
6744 else
6745 _native_rtsp="$_network"
6746 _nemesi=no
6747 def_nemesi='#undef CONFIG_LIBNEMESI'
6748 _noinputmodules="nemesi $_noinputmodules"
6750 echores "$_nemesi"
6752 echocheck "LIVE555 Streaming Media libraries"
6753 if test "$_live" = auto && test "$_network" = yes ; then
6754 cat > $TMPCPP << EOF
6755 #include <liveMedia.hh>
6756 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6757 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6758 #endif
6759 int main(void) { return 0; }
6762 _live=no
6763 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
6764 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6765 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6766 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6767 $_livelibdir/groupsock/libgroupsock.a \
6768 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6769 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6770 $extra_ldflags -lstdc++" \
6771 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6772 -I$_livelibdir/UsageEnvironment/include \
6773 -I$_livelibdir/BasicUsageEnvironment/include \
6774 -I$_livelibdir/groupsock/include" && \
6775 _live=yes && break
6776 done
6777 if test "$_live" != yes ; then
6778 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6779 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6780 _live_dist=yes
6784 if test "$_live" = yes && test "$_network" = yes; then
6785 test $_livelibdir && _res_comment="using $_livelibdir"
6786 def_live='#define CONFIG_LIVE555 1'
6787 _inputmodules="live555 $_inputmodules"
6788 elif test "$_live_dist" = yes && test "$_network" = yes; then
6789 _res_comment="using distribution version"
6790 _live="yes"
6791 def_live='#define CONFIG_LIVE555 1'
6792 extra_ldflags="$extra_ldflags $ld_tmp"
6793 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6794 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6795 _inputmodules="live555 $_inputmodules"
6796 else
6797 _live=no
6798 def_live='#undef CONFIG_LIVE555'
6799 _noinputmodules="live555 $_noinputmodules"
6801 echores "$_live"
6804 echocheck "FFmpeg libavutil"
6805 if test "$_libavutil" = auto ; then
6806 _libavutil=no
6807 cat > $TMPC << EOF
6808 #include <libavutil/common.h>
6809 int main(void) { av_gcd(1,1); return 0; }
6811 if $_pkg_config --exists libavutil ; then
6812 _inc_libavutil=$($_pkg_config --cflags libavutil)
6813 _ld_tmp=$($_pkg_config --libs libavutil)
6814 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libavutil" \
6815 && _libavutil=yes
6816 elif cc_check -lavutil $_ld_lm ; then
6817 extra_ldflags="$extra_ldflags -lavutil"
6818 _libavutil=yes
6821 def_libavutil='#undef CONFIG_LIBAVUTIL'
6822 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6823 # libavutil is not available, but it is mandatory ...
6824 if test "$_libavutil" = no ; then
6825 die "You need libavutil, MPlayer will not compile without!"
6827 echores "$_libavutil"
6829 echocheck "FFmpeg libavcodec"
6830 if test "$_libavcodec" = auto ; then
6831 _libavcodec=no
6832 cat > $TMPC << EOF
6833 #include <libavcodec/avcodec.h>
6834 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6836 if $_pkg_config --exists libavcodec ; then
6837 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6838 _ld_tmp=$($_pkg_config --libs libavcodec)
6839 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavcodec" \
6840 && _libavcodec=yes
6841 elif cc_check -lavcodec $_ld_lm ; then
6842 extra_ldflags="$extra_ldflags -lavcodec"
6843 _libavcodec=yes
6846 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6847 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6848 if test "$_libavcodec" = yes ; then
6849 _codecmodules="libavcodec $_codecmodules"
6850 else
6851 _nocodecmodules="libavcodec $_nocodecmodules"
6853 echores "$_libavcodec"
6855 echocheck "FFmpeg libavformat"
6856 if test "$_libavformat" = auto ; then
6857 _libavformat=no
6858 cat > $TMPC <<EOF
6859 #include <libavformat/avformat.h>
6860 #include <libavcodec/opt.h>
6861 int main(void) { av_alloc_format_context(); return 0; }
6863 if $_pkg_config --exists libavformat ; then
6864 _inc_libavformat=$($_pkg_config --cflags libavformat)
6865 _ld_tmp=$($_pkg_config --libs libavformat)
6866 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavformat" \
6867 && _libavformat=yes
6868 elif cc_check $_ld_lm -lavformat ; then
6869 extra_ldflags="$extra_ldflags -lavformat"
6870 _libavformat=yes
6873 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6874 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6875 echores "$_libavformat"
6877 echocheck "FFmpeg libpostproc"
6878 if test "$_libpostproc" = auto ; then
6879 _libpostproc=no
6880 cat > $TMPC << EOF
6881 #include <inttypes.h>
6882 #include <libpostproc/postprocess.h>
6883 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6885 if $_pkg_config --exists libpostproc ; then
6886 _inc_libpostproc=$($_pkg_config --cflags libpostproc)
6887 _ld_tmp=$($_pkg_config --libs libpostproc)
6888 cc_check $_inc_libpostproc $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libpostproc" \
6889 && _libpostproc=yes
6890 elif cc_check -lpostproc $_ld_lm ; then
6891 extra_ldflags="$extra_ldflags -lpostproc"
6892 _libpostproc=yes
6895 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
6896 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
6897 echores "$_libpostproc"
6899 echocheck "FFmpeg libswscale"
6900 if test "$_libswscale" = auto ; then
6901 _libswscale=no
6902 cat > $TMPC << EOF
6903 #include <libswscale/swscale.h>
6904 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
6906 if $_pkg_config --exists libswscale ; then
6907 _inc_libswscale=$($_pkg_config --cflags libswscale)
6908 _ld_tmp=$($_pkg_config --libs libswscale)
6909 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libswscale" \
6910 && _libswscale=yes
6911 elif cc_check -lswscale ; then
6912 extra_ldflags="$extra_ldflags -lswscale"
6913 _libswscale=yes
6916 def_libswscale='#undef CONFIG_LIBSWSCALE'
6917 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
6918 echores "$_libswscale"
6920 def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
6921 if ! test -z "$_ffmpeg_source" ; then
6922 test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
6925 def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
6926 if ! test -z "$_ffmpeg_source" ; then
6927 test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
6930 echocheck "libdv-0.9.5+"
6931 if test "$_libdv" = auto ; then
6932 _libdv=no
6933 cat > $TMPC <<EOF
6934 #include <libdv/dv.h>
6935 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6937 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
6939 if test "$_libdv" = yes ; then
6940 def_libdv='#define CONFIG_LIBDV095 1'
6941 extra_ldflags="$extra_ldflags -ldv"
6942 _codecmodules="libdv $_codecmodules"
6943 else
6944 def_libdv='#undef CONFIG_LIBDV095'
6945 _nocodecmodules="libdv $_nocodecmodules"
6947 echores "$_libdv"
6950 echocheck "Xvid"
6951 if test "$_xvid" = auto ; then
6952 _xvid=no
6953 cat > $TMPC << EOF
6954 #include <xvid.h>
6955 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6957 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6958 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6959 done
6962 if test "$_xvid" = yes ; then
6963 def_xvid='#define CONFIG_XVID4 1'
6964 _codecmodules="xvid $_codecmodules"
6965 else
6966 def_xvid='#undef CONFIG_XVID4'
6967 _nocodecmodules="xvid $_nocodecmodules"
6969 echores "$_xvid"
6971 echocheck "x264"
6972 if test "$_x264" = auto ; then
6973 cat > $TMPC << EOF
6974 #include <inttypes.h>
6975 #include <x264.h>
6976 #if X264_BUILD < 79
6977 #error We do not support old versions of x264. Get the latest from git.
6978 #endif
6979 int main(void) { x264_encoder_open((void*)0); return 0; }
6981 _x264=no
6982 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
6983 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
6984 done
6987 if test "$_x264" = yes ; then
6988 def_x264='#define CONFIG_X264 1'
6989 _codecmodules="x264 $_codecmodules"
6990 else
6991 def_x264='#undef CONFIG_X264'
6992 _nocodecmodules="x264 $_nocodecmodules"
6994 echores "$_x264"
6996 echocheck "libnut"
6997 if test "$_libnut" = auto ; then
6998 cat > $TMPC << EOF
6999 #include <stdio.h>
7000 #include <stdlib.h>
7001 #include <inttypes.h>
7002 #include <libnut.h>
7003 nut_context_tt * nut;
7004 int main(void) { (void)nut_error(0); return 0; }
7006 _libnut=no
7007 cc_check -lnut && _libnut=yes
7010 if test "$_libnut" = yes ; then
7011 def_libnut='#define CONFIG_LIBNUT 1'
7012 extra_ldflags="$extra_ldflags -lnut"
7013 else
7014 def_libnut='#undef CONFIG_LIBNUT'
7016 echores "$_libnut"
7018 # These VO checks must be done after libavcodec/libswscale one
7019 echocheck "/dev/mga_vid"
7020 if test "$_mga" = auto ; then
7021 _mga=no
7022 test -c /dev/mga_vid && _mga=yes
7024 if test "$_mga" = yes ; then
7025 if test "$_libswscale_internals" = yes ; then
7026 def_mga='#define CONFIG_MGA 1'
7027 _vomodules="mga $_vomodules"
7028 else
7029 _res_comment="libswscale internal headers are required by mga, sorry"
7030 def_mga='#undef CONFIG_MGA'
7031 _novomodules="mga $_novomodules"
7033 else
7034 def_mga='#undef CONFIG_MGA'
7035 _novomodules="mga $_novomodules"
7037 echores "$_mga"
7040 echocheck "xmga"
7041 if test "$_xmga" = auto ; then
7042 _xmga=no
7043 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
7045 if test "$_xmga" = yes ; then
7046 if test "$_libswscale_internals" = yes ; then
7047 def_xmga='#define CONFIG_XMGA 1'
7048 _vomodules="xmga $_vomodules"
7049 else
7050 _res_comment="libswscale internal headers are required by mga, sorry"
7051 def_xmga='#undef CONFIG_XMGA'
7052 _novomodules="xmga $_novomodules"
7054 else
7055 def_xmga='#undef CONFIG_XMGA'
7056 _novomodules="xmga $_novomodules"
7058 echores "$_xmga"
7060 echocheck "zr"
7061 if test "$_zr" = auto ; then
7062 #36067's seem to identify themselves as 36057PQC's, so the line
7063 #below should work for 36067's and 36057's.
7064 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7065 _zr=yes
7066 else
7067 _zr=no
7070 if test "$_zr" = yes ; then
7071 if test "$_libavcodec_internals" = yes ; then
7072 def_zr='#define CONFIG_ZR 1'
7073 _vomodules="zr zr2 $_vomodules"
7074 else
7075 _res_comment="libavcodec internal headers are required by zr, sorry"
7076 _novomodules="zr $_novomodules"
7077 def_zr='#undef CONFIG_ZR'
7079 else
7080 def_zr='#undef CONFIG_ZR'
7081 _novomodules="zr zr2 $_novomodules"
7083 echores "$_zr"
7085 # mencoder requires (optional) those libs: libmp3lame
7086 if test "$_mencoder" != no ; then
7088 echocheck "libmp3lame"
7089 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7090 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7091 if test "$_mp3lame" = auto ; then
7092 _mp3lame=no
7093 cat > $TMPC <<EOF
7094 #include <lame/lame.h>
7095 int main(void) { lame_version_t lv; (void) lame_init();
7096 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7097 return 0; }
7099 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7101 if test "$_mp3lame" = yes ; then
7102 def_mp3lame="#define CONFIG_MP3LAME 1"
7103 _ld_mp3lame=-lmp3lame
7104 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7105 cat > $TMPC << EOF
7106 #include <lame/lame.h>
7107 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7109 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7110 cat > $TMPC << EOF
7111 #include <lame/lame.h>
7112 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7114 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7115 else
7116 def_mp3lame='#undef CONFIG_MP3LAME'
7118 echores "$_mp3lame"
7120 fi # test "$_mencoder" != no
7122 echocheck "mencoder"
7123 if test "$_mencoder" = yes ; then
7124 def_muxers='#define CONFIG_MUXERS 1'
7125 else
7126 def_muxers='#define CONFIG_MUXERS 0'
7128 echores "$_mencoder"
7131 echocheck "UnRAR executable"
7132 if test "$_unrar_exec" = auto ; then
7133 _unrar_exec="yes"
7134 mingw32 && _unrar_exec="no"
7136 if test "$_unrar_exec" = yes ; then
7137 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7138 else
7139 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7141 echores "$_unrar_exec"
7143 echocheck "TV interface"
7144 if test "$_tv" = yes ; then
7145 def_tv='#define CONFIG_TV 1'
7146 _inputmodules="tv $_inputmodules"
7147 else
7148 _noinputmodules="tv $_noinputmodules"
7149 def_tv='#undef CONFIG_TV'
7151 echores "$_tv"
7154 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7155 echocheck "*BSD BT848 bt8xx header"
7156 _ioctl_bt848_h=no
7157 for file in "machine/ioctl_bt848.h" \
7158 "dev/bktr/ioctl_bt848.h" \
7159 "dev/video/bktr/ioctl_bt848.h" \
7160 "dev/ic/bt8xx.h" ; do
7161 cat > $TMPC <<EOF
7162 #include <sys/types.h>
7163 #include <sys/ioctl.h>
7164 #include <$file>
7165 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7167 if cc_check ; then
7168 _ioctl_bt848_h=yes
7169 _ioctl_bt848_h_name="$file"
7170 break;
7172 done
7173 if test "$_ioctl_bt848_h" = yes ; then
7174 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7175 _res_comment="using $_ioctl_bt848_h_name"
7176 else
7177 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7179 echores "$_ioctl_bt848_h"
7181 echocheck "*BSD ioctl_meteor.h"
7182 _ioctl_meteor_h=no
7183 for file in "machine/ioctl_meteor.h" \
7184 "dev/bktr/ioctl_meteor.h" \
7185 "dev/video/bktr/ioctl_meteor.h" ; do
7186 cat > $TMPC <<EOF
7187 #include <sys/types.h>
7188 #include <$file>
7189 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7191 if cc_check ; then
7192 _ioctl_meteor_h=yes
7193 _ioctl_meteor_h_name="$file"
7194 break;
7196 done
7197 if test "$_ioctl_meteor_h" = yes ; then
7198 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7199 _res_comment="using $_ioctl_meteor_h_name"
7200 else
7201 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7203 echores "$_ioctl_meteor_h"
7205 echocheck "*BSD BrookTree 848 TV interface"
7206 if test "$_tv_bsdbt848" = auto ; then
7207 _tv_bsdbt848=no
7208 if test "$_tv" = yes ; then
7209 cat > $TMPC <<EOF
7210 #include <sys/types.h>
7211 $def_ioctl_meteor_h_name
7212 $def_ioctl_bt848_h_name
7213 #ifdef IOCTL_METEOR_H_NAME
7214 #include IOCTL_METEOR_H_NAME
7215 #endif
7216 #ifdef IOCTL_BT848_H_NAME
7217 #include IOCTL_BT848_H_NAME
7218 #endif
7219 int main(void) {
7220 ioctl(0, METEORSINPUT, 0);
7221 ioctl(0, TVTUNER_GETFREQ, 0);
7222 return 0;
7225 cc_check && _tv_bsdbt848=yes
7228 if test "$_tv_bsdbt848" = yes ; then
7229 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7230 _inputmodules="tv-bsdbt848 $_inputmodules"
7231 else
7232 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7233 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7235 echores "$_tv_bsdbt848"
7236 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7239 echocheck "DirectShow TV interface"
7240 if test "$_tv_dshow" = auto ; then
7241 _tv_dshow=no
7242 if test "$_tv" = yes && win32 ; then
7243 cat > $TMPC <<EOF
7244 #include <ole2.h>
7245 int main(void) {
7246 void* p;
7247 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7248 return 0;
7251 cc_check -lole32 -luuid && _tv_dshow=yes
7254 if test "$_tv_dshow" = yes ; then
7255 _inputmodules="tv-dshow $_inputmodules"
7256 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7257 extra_ldflags="$extra_ldflags -lole32 -luuid"
7258 else
7259 _noinputmodules="tv-dshow $_noinputmodules"
7260 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7262 echores "$_tv_dshow"
7265 echocheck "Video 4 Linux TV interface"
7266 if test "$_tv_v4l1" = auto ; then
7267 _tv_v4l1=no
7268 if test "$_tv" = yes && linux ; then
7269 cat > $TMPC <<EOF
7270 #include <stdlib.h>
7271 #include <linux/videodev.h>
7272 int main(void) { return 0; }
7274 cc_check && _tv_v4l1=yes
7277 if test "$_tv_v4l1" = yes ; then
7278 _audio_input=yes
7279 _tv_v4l=yes
7280 def_tv_v4l='#define CONFIG_TV_V4L 1'
7281 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7282 _inputmodules="tv-v4l $_inputmodules"
7283 else
7284 _noinputmodules="tv-v4l1 $_noinputmodules"
7285 def_tv_v4l='#undef CONFIG_TV_V4L'
7287 echores "$_tv_v4l1"
7290 echocheck "Video 4 Linux 2 TV interface"
7291 if test "$_tv_v4l2" = auto ; then
7292 _tv_v4l2=no
7293 if test "$_tv" = yes && linux ; then
7294 cat > $TMPC <<EOF
7295 #include <stdlib.h>
7296 #include <linux/types.h>
7297 #include <linux/videodev2.h>
7298 int main(void) { return 0; }
7300 cc_check && _tv_v4l2=yes
7303 if test "$_tv_v4l2" = yes ; then
7304 _audio_input=yes
7305 _tv_v4l=yes
7306 def_tv_v4l='#define CONFIG_TV_V4L 1'
7307 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7308 _inputmodules="tv-v4l2 $_inputmodules"
7309 else
7310 _noinputmodules="tv-v4l2 $_noinputmodules"
7311 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7313 echores "$_tv_v4l2"
7316 echocheck "Radio interface"
7317 if test "$_radio" = yes ; then
7318 def_radio='#define CONFIG_RADIO 1'
7319 _inputmodules="radio $_inputmodules"
7320 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7321 _radio_capture=no
7323 if test "$_radio_capture" = yes ; then
7324 _audio_input=yes
7325 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7326 else
7327 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7329 else
7330 _noinputmodules="radio $_noinputmodules"
7331 def_radio='#undef CONFIG_RADIO'
7332 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7333 _radio_capture=no
7335 echores "$_radio"
7336 echocheck "Capture for Radio interface"
7337 echores "$_radio_capture"
7339 echocheck "Video 4 Linux 2 Radio interface"
7340 if test "$_radio_v4l2" = auto ; then
7341 _radio_v4l2=no
7342 if test "$_radio" = yes && linux ; then
7343 cat > $TMPC <<EOF
7344 #include <stdlib.h>
7345 #include <linux/types.h>
7346 #include <linux/videodev2.h>
7347 int main(void) { return 0; }
7349 cc_check && _radio_v4l2=yes
7352 if test "$_radio_v4l2" = yes ; then
7353 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7354 else
7355 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7357 echores "$_radio_v4l2"
7359 echocheck "Video 4 Linux Radio interface"
7360 if test "$_radio_v4l" = auto ; then
7361 _radio_v4l=no
7362 if test "$_radio" = yes && linux ; then
7363 cat > $TMPC <<EOF
7364 #include <stdlib.h>
7365 #include <linux/videodev.h>
7366 int main(void) { return 0; }
7368 cc_check && _radio_v4l=yes
7371 if test "$_radio_v4l" = yes ; then
7372 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7373 else
7374 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7376 echores "$_radio_v4l"
7378 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7379 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7380 echocheck "*BSD BrookTree 848 Radio interface"
7381 _radio_bsdbt848=no
7382 cat > $TMPC <<EOF
7383 #include <sys/types.h>
7384 $def_ioctl_bt848_h_name
7385 #ifdef IOCTL_BT848_H_NAME
7386 #include IOCTL_BT848_H_NAME
7387 #endif
7388 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7390 cc_check && _radio_bsdbt848=yes
7391 echores "$_radio_bsdbt848"
7392 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7394 if test "$_radio_bsdbt848" = yes ; then
7395 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7396 else
7397 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7400 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7401 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7402 die "Radio driver requires BSD BT848, V4L or V4L2!"
7405 echocheck "Video 4 Linux 2 MPEG PVR interface"
7406 if test "$_pvr" = auto ; then
7407 _pvr=no
7408 if test "$_tv_v4l2" = yes && linux ; then
7409 cat > $TMPC <<EOF
7410 #include <stdlib.h>
7411 #include <inttypes.h>
7412 #include <linux/types.h>
7413 #include <linux/videodev2.h>
7414 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7416 cc_check && _pvr=yes
7419 if test "$_pvr" = yes ; then
7420 def_pvr='#define CONFIG_PVR 1'
7421 _inputmodules="pvr $_inputmodules"
7422 else
7423 _noinputmodules="pvr $_noinputmodules"
7424 def_pvr='#undef CONFIG_PVR'
7426 echores "$_pvr"
7429 echocheck "ftp"
7430 if ! beos && test "$_ftp" = yes ; then
7431 def_ftp='#define CONFIG_FTP 1'
7432 _inputmodules="ftp $_inputmodules"
7433 else
7434 _noinputmodules="ftp $_noinputmodules"
7435 def_ftp='#undef CONFIG_FTP'
7437 echores "$_ftp"
7439 echocheck "vstream client"
7440 if test "$_vstream" = auto ; then
7441 _vstream=no
7442 cat > $TMPC <<EOF
7443 #include <vstream-client.h>
7444 void vstream_error(const char *format, ... ) {}
7445 int main(void) { vstream_start(); return 0; }
7447 cc_check -lvstream-client && _vstream=yes
7449 if test "$_vstream" = yes ; then
7450 def_vstream='#define CONFIG_VSTREAM 1'
7451 _inputmodules="vstream $_inputmodules"
7452 extra_ldflags="$extra_ldflags -lvstream-client"
7453 else
7454 _noinputmodules="vstream $_noinputmodules"
7455 def_vstream='#undef CONFIG_VSTREAM'
7457 echores "$_vstream"
7460 echocheck "OSD menu"
7461 if test "$_menu" = yes ; then
7462 def_menu='#define CONFIG_MENU 1'
7463 test $_dvbin = "yes" && _menu_dvbin=yes
7464 else
7465 def_menu='#undef CONFIG_MENU'
7466 _menu_dvbin=no
7468 echores "$_menu"
7471 echocheck "Subtitles sorting"
7472 if test "$_sortsub" = yes ; then
7473 def_sortsub='#define CONFIG_SORTSUB 1'
7474 else
7475 def_sortsub='#undef CONFIG_SORTSUB'
7477 echores "$_sortsub"
7480 echocheck "XMMS inputplugin support"
7481 if test "$_xmms" = yes ; then
7482 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7483 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7484 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7485 else
7486 _xmmsplugindir=/usr/lib/xmms/Input
7487 _xmmslibdir=/usr/lib
7490 def_xmms='#define CONFIG_XMMS 1'
7491 if darwin ; then
7492 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7493 else
7494 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7496 else
7497 def_xmms='#undef CONFIG_XMMS'
7499 echores "$_xmms"
7501 if test "$_charset" != "noconv" ; then
7502 def_charset="#define MSG_CHARSET \"$_charset\""
7503 else
7504 def_charset="#undef MSG_CHARSET"
7505 _charset="UTF-8"
7508 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7509 echocheck "iconv program"
7510 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7511 if test "$?" -ne 0 ; then
7512 echores "no"
7513 echo "No working iconv program found, use "
7514 echo "--charset=UTF-8 to continue anyway."
7515 echo "If you also have problems with iconv library functions use --charset=noconv."
7516 exit 1
7517 else
7518 echores "yes"
7522 #############################################################################
7524 echocheck "automatic gdb attach"
7525 if test "$_crash_debug" = yes ; then
7526 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7527 else
7528 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7529 _crash_debug=no
7531 echores "$_crash_debug"
7533 echocheck "compiler support for noexecstack"
7534 cat > $TMPC <<EOF
7535 int main(void) { return 0; }
7537 if cc_check -Wl,-z,noexecstack ; then
7538 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7539 echores "yes"
7540 else
7541 echores "no"
7545 # Dynamic linking flags
7546 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7547 _ld_dl_dynamic=''
7548 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7549 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7550 _ld_dl_dynamic='-rdynamic'
7553 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7554 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7555 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7557 def_debug='#undef MP_DEBUG'
7558 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7561 echocheck "joystick"
7562 def_joystick='#undef CONFIG_JOYSTICK'
7563 if test "$_joystick" = yes ; then
7564 if linux ; then
7565 # TODO add some check
7566 def_joystick='#define CONFIG_JOYSTICK 1'
7567 else
7568 _joystick="no"
7569 _res_comment="unsupported under $system_name"
7572 echores "$_joystick"
7574 echocheck "lirc"
7575 if test "$_lirc" = auto ; then
7576 _lirc=no
7577 cat > $TMPC <<EOF
7578 #include <lirc/lirc_client.h>
7579 int main(void) { return 0; }
7581 cc_check -llirc_client && _lirc=yes
7583 if test "$_lirc" = yes ; then
7584 def_lirc='#define CONFIG_LIRC 1'
7585 libs_mplayer="$libs_mplayer -llirc_client"
7586 else
7587 def_lirc='#undef CONFIG_LIRC'
7589 echores "$_lirc"
7591 echocheck "lircc"
7592 if test "$_lircc" = auto ; then
7593 _lircc=no
7594 cat > $TMPC <<EOF
7595 #include <lirc/lircc.h>
7596 int main(void) { return 0; }
7598 cc_check -llircc && _lircc=yes
7600 if test "$_lircc" = yes ; then
7601 def_lircc='#define CONFIG_LIRCC 1'
7602 libs_mplayer="$libs_mplayer -llircc"
7603 else
7604 def_lircc='#undef CONFIG_LIRCC'
7606 echores "$_lircc"
7608 if arm; then
7609 # Detect maemo development platform libraries availability (http://www.maemo.org),
7610 # they are used when run on Nokia 770|8x0
7611 echocheck "maemo (Nokia 770|8x0)"
7612 if test "$_maemo" = auto ; then
7613 _maemo=no
7614 cat > $TMPC << EOF
7615 #include <libosso.h>
7616 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7618 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7620 if test "$_maemo" = yes ; then
7621 def_maemo='#define CONFIG_MAEMO 1'
7622 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7623 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7624 else
7625 def_maemo='#undef CONFIG_MAEMO'
7627 echores "$_maemo"
7630 #############################################################################
7632 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7633 # the OMF format needs to come after the 'extern symbol prefix' check, which
7634 # uses nm.
7635 if os2 ; then
7636 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7639 # linker paths should be the same for mencoder and mplayer
7640 _ld_tmp=""
7641 for I in $libs_mplayer ; do
7642 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7643 if test -z "$_tmp" ; then
7644 extra_ldflags="$extra_ldflags $I"
7645 else
7646 _ld_tmp="$_ld_tmp $I"
7648 done
7649 libs_mplayer=$_ld_tmp
7652 #############################################################################
7653 # 64 bit file offsets?
7654 if test "$_largefiles" = yes || freebsd ; then
7655 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7656 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7657 # dvdread support requires this (for off64_t)
7658 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7662 CXXFLAGS=" $CFLAGS -Iffmpeg -D__STDC_LIMIT_MACROS"
7664 # This must be the last test to be performed. Any other tests following it
7665 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7666 # against libdvdread (to permit MPlayer to use its own copy of the library).
7667 # So any compilation using the flags added here but not linking against
7668 # libdvdread can fail.
7669 echocheck "DVD support (libdvdnav)"
7670 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7671 _dvdnav=no
7673 dvdnav_internal=no
7674 if test "$_dvdnav" = auto ; then
7675 if test "$_dvdread_internal" = yes ; then
7676 _dvdnav=yes
7677 dvdnav_internal=yes
7678 _res_comment="internal"
7679 else
7680 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7683 if test "$_dvdnav" = auto ; then
7684 cat > $TMPC <<EOF
7685 #include <inttypes.h>
7686 #include <dvdnav/dvdnav.h>
7687 int main(void) { dvdnav_t *dvd=0; return 0; }
7689 _dvdnav=no
7690 _dvdnavdir=$($_dvdnavconfig --cflags)
7691 _dvdnavlibs=$($_dvdnavconfig --libs)
7692 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7694 if test "$_dvdnav" = yes ; then
7695 _largefiles=yes
7696 def_dvdnav='#define CONFIG_DVDNAV 1'
7697 if test "$dvdnav_internal" = yes ; then
7698 cflags_libdvdnav="-Ilibdvdnav"
7699 _inputmodules="dvdnav(internal) $_inputmodules"
7700 else
7701 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7702 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7703 _inputmodules="dvdnav $_inputmodules"
7705 else
7706 def_dvdnav='#undef CONFIG_DVDNAV'
7707 _noinputmodules="dvdnav $_noinputmodules"
7709 echores "$_dvdnav"
7711 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7712 # Read dvdnav comment above.
7714 #############################################################################
7715 echo "Creating config.mak"
7716 cat > config.mak << EOF
7717 # -------- Generated by configure -----------
7719 # Ensure that locale settings do not interfere with shell commands.
7720 export LC_ALL = C
7722 CONFIGURATION = $_configuration
7724 CHARSET = $_charset
7725 DOC_LANGS = $language_doc
7726 DOC_LANG_ALL = $doc_lang_all
7727 MAN_LANGS = $language_man
7728 MAN_LANG_ALL = $man_lang_all
7730 prefix = \$(DESTDIR)$_prefix
7731 BINDIR = \$(DESTDIR)$_bindir
7732 DATADIR = \$(DESTDIR)$_datadir
7733 LIBDIR = \$(DESTDIR)$_libdir
7734 MANDIR = \$(DESTDIR)$_mandir
7735 CONFDIR = \$(DESTDIR)$_confdir
7737 AR = $_ar
7738 AS = $_cc
7739 CC = $_cc
7740 CXX = $_cc
7741 HOST_CC = $_host_cc
7742 YASM = $_yasm
7743 INSTALL = $_install
7744 INSTALLSTRIP = $_install_strip
7745 RANLIB = $_ranlib
7746 WINDRES = $_windres
7748 CFLAGS = $CFLAGS $extra_cflags
7749 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
7750 CFLAGS_DHAHELPER = $cflags_dhahelper
7751 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7752 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7753 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7754 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7755 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7756 CFLAGS_STACKREALIGN = $cflags_stackrealign
7757 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7758 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7759 YASMFLAGS = $YASMFLAGS
7761 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
7762 EXTRALIBS_MPLAYER = $libs_mplayer
7763 EXTRALIBS_MENCODER = $libs_mencoder
7765 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
7766 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
7768 GETCH = $_getch
7769 HELP_FILE = $_mp_help
7770 TIMER = $_timer
7772 EXESUF = $_exesuf
7773 EXESUFS_ALL = .exe
7775 $_target_arch
7776 $_target_subarch
7777 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
7779 MENCODER = $_mencoder
7780 MPLAYER = $_mplayer
7782 NEED_GETTIMEOFDAY = $_need_gettimeofday
7783 NEED_GLOB = $_need_glob
7784 NEED_MMAP = $_need_mmap
7785 NEED_SETENV = $_need_setenv
7786 NEED_SHMEM = $_need_shmem
7787 NEED_STRSEP = $_need_strsep
7788 NEED_SWAB = $_need_swab
7789 NEED_VSSCANF = $_need_vsscanf
7791 # features
7792 3DFX = $_3dfx
7793 AA = $_aa
7794 ALSA1X = $_alsa1x
7795 ALSA9 = $_alsa9
7796 ALSA5 = $_alsa5
7797 APPLE_IR = $_apple_ir
7798 APPLE_REMOTE = $_apple_remote
7799 ARTS = $_arts
7800 AUDIO_INPUT = $_audio_input
7801 BITMAP_FONT = $_bitmap_font
7802 BL = $_bl
7803 CACA = $_caca
7804 CDDA = $_cdda
7805 CDDB = $_cddb
7806 COREAUDIO = $_coreaudio
7807 COREVIDEO = $_corevideo
7808 DART = $_dart
7809 DFBMGA = $_dfbmga
7810 DGA = $_dga
7811 DIRECT3D = $_direct3d
7812 DIRECTFB = $_directfb
7813 DIRECTX = $_directx
7814 DVBIN = $_dvbin
7815 DVDNAV = $_dvdnav
7816 DVDNAV_INTERNAL = $dvdnav_internal
7817 DVDREAD = $_dvdread
7818 DVDREAD_INTERNAL = $_dvdread_internal
7819 DXR2 = $_dxr2
7820 DXR3 = $_dxr3
7821 ESD = $_esd
7822 FAAC=$_faac
7823 FAAD = $_faad
7824 FAAD_INTERNAL = $_faad_internal
7825 FASTMEMCPY = $_fastmemcpy
7826 FBDEV = $_fbdev
7827 FREETYPE = $_freetype
7828 FTP = $_ftp
7829 GIF = $_gif
7830 GGI = $_ggi
7831 GL = $_gl
7832 GL_WIN32 = $_gl_win32
7833 HAVE_POSIX_SELECT = $_posix_select
7834 HAVE_SYS_MMAN_H = $_mman
7835 IVTV = $_ivtv
7836 JACK = $_jack
7837 JOYSTICK = $_joystick
7838 JPEG = $_jpeg
7839 KVA = $_kva
7840 LADSPA = $_ladspa
7841 LIBA52 = $_liba52
7842 LIBA52_INTERNAL = $_liba52_internal
7843 LIBASS = $_ass
7844 LIBBS2B = $_libbs2b
7845 LIBDCA = $_libdca
7846 LIBDV = $_libdv
7847 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7848 LIBLZO = $_liblzo
7849 LIBMAD = $_mad
7850 LIBMENU = $_menu
7851 LIBMENU_DVBIN = $_menu_dvbin
7852 LIBMPEG2 = $_libmpeg2
7853 LIBNEMESI = $_nemesi
7854 LIBNUT = $_libnut
7855 LIBSMBCLIENT = $_smb
7856 LIBTHEORA = $_theora
7857 LIRC = $_lirc
7858 LIVE555 = $_live
7859 MACOSX_BUNDLE = $_macosx_bundle
7860 MACOSX_FINDER = $_macosx_finder
7861 MD5SUM = $_md5sum
7862 MGA = $_mga
7863 MNG = $_mng
7864 MP3LAME = $_mp3lame
7865 MP3LIB = $_mp3lib
7866 MUSEPACK = $_musepack
7867 NAS = $_nas
7868 NATIVE_RTSP = $_native_rtsp
7869 NETWORK = $_network
7870 OPENAL = $_openal
7871 OSS = $_ossaudio
7872 PE_EXECUTABLE = $_pe_executable
7873 PNG = $_png
7874 PNM = $_pnm
7875 PRIORITY = $_priority
7876 PULSE = $_pulse
7877 PVR = $_pvr
7878 QTX_CODECS = $_qtx
7879 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7880 QTX_EMULATION = $_qtx_emulation
7881 QUARTZ = $_quartz
7882 RADIO=$_radio
7883 RADIO_CAPTURE=$_radio_capture
7884 REAL_CODECS = $_real
7885 S3FB = $_s3fb
7886 SDL = $_sdl
7887 SPEEX = $_speex
7888 STREAM_CACHE = $_stream_cache
7889 SGIAUDIO = $_sgiaudio
7890 SUNAUDIO = $_sunaudio
7891 SVGA = $_svga
7892 TDFXFB = $_tdfxfb
7893 TDFXVID = $_tdfxvid
7894 TGA = $_tga
7895 TOOLAME=$_toolame
7896 TREMOR_INTERNAL = $_tremor_internal
7897 TV = $_tv
7898 TV_BSDBT848 = $_tv_bsdbt848
7899 TV_DSHOW = $_tv_dshow
7900 TV_V4L = $_tv_v4l
7901 TV_V4L1 = $_tv_v4l1
7902 TV_V4L2 = $_tv_v4l2
7903 TWOLAME=$_twolame
7904 UNRAR_EXEC = $_unrar_exec
7905 V4L2 = $_v4l2
7906 VCD = $_vcd
7907 VDPAU = $_vdpau
7908 VESA = $_vesa
7909 VIDIX = $_vidix
7910 VIDIX_PCIDB = $_vidix_pcidb_val
7911 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7912 VIDIX_IVTV=$_vidix_drv_ivtv
7913 VIDIX_MACH64=$_vidix_drv_mach64
7914 VIDIX_MGA=$_vidix_drv_mga
7915 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7916 VIDIX_NVIDIA=$_vidix_drv_nvidia
7917 VIDIX_PM2=$_vidix_drv_pm2
7918 VIDIX_PM3=$_vidix_drv_pm3
7919 VIDIX_RADEON=$_vidix_drv_radeon
7920 VIDIX_RAGE128=$_vidix_drv_rage128
7921 VIDIX_S3=$_vidix_drv_s3
7922 VIDIX_SH_VEU=$_vidix_drv_sh_veu
7923 VIDIX_SIS=$_vidix_drv_sis
7924 VIDIX_UNICHROME=$_vidix_drv_unichrome
7925 VORBIS = $_vorbis
7926 VSTREAM = $_vstream
7927 WII = $_wii
7928 WIN32DLL = $_win32dll
7929 WIN32WAVEOUT = $_win32waveout
7930 WIN32_EMULATION = $_win32_emulation
7931 WINVIDIX = $winvidix
7932 X11 = $_x11
7933 X264 = $_x264
7934 XANIM_CODECS = $_xanim
7935 XMGA = $_xmga
7936 XMMS_PLUGINS = $_xmms
7937 XV = $_xv
7938 XVID4 = $_xvid
7939 XVIDIX = $xvidix
7940 XVMC = $_xvmc
7941 XVR100 = $_xvr100
7942 YUV4MPEG = $_yuv4mpeg
7943 ZR = $_zr
7945 # FFmpeg
7946 LIBAVUTIL = $_libavutil
7947 LIBAVCODEC = $_libavcodec
7948 LIBAVFORMAT = $_libavformat
7949 LIBPOSTPROC = $_libpostproc
7950 LIBSWSCALE = $_libswscale
7951 LIBAVCODEC_INTERNALS = $_libavcodec_internals
7952 LIBSWSCALE_INTERNALS = $_libswscale_internals
7953 FFMPEG_SOURCE_PATH = $_ffmpeg_source
7955 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
7956 CONFIG_AANDCT=yes
7957 CONFIG_FFT=yes
7958 CONFIG_FFT_MMX=$fft_mmx
7959 CONFIG_GOLOMB=yes
7960 CONFIG_LPC=yes
7961 CONFIG_MDCT=yes
7962 CONFIG_RDFT=yes
7964 CONFIG_BZLIB=$bzlib
7965 CONFIG_ENCODERS=yes
7966 CONFIG_GPL=yes
7967 CONFIG_MLIB = $_mlib
7968 CONFIG_MUXERS=$_mencoder
7969 CONFIG_VDPAU=$_vdpau
7970 CONFIG_XVMC=$_xvmc
7971 CONFIG_ZLIB=$_zlib
7973 HAVE_PTHREADS = $_pthreads
7974 HAVE_SHM = $_shm
7975 HAVE_W32THREADS = $_w32threads
7976 HAVE_YASM = $_have_yasm
7980 #############################################################################
7982 ff_config_enable () {
7983 _nprefix=$3;
7984 test -z "$_nprefix" && _nprefix='CONFIG'
7985 for part in $1; do
7986 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
7987 echo "#define ${_nprefix}_$part 1"
7988 else
7989 echo "#define ${_nprefix}_$part 0"
7991 done
7994 echo "Creating config.h"
7995 cat > $TMPH << EOF
7996 /*----------------------------------------------------------------------------
7997 ** This file has been automatically generated by configure any changes in it
7998 ** will be lost when you run configure again.
7999 ** Instead of modifying definitions here, use the --enable/--disable options
8000 ** of the configure script! See ./configure --help for details.
8001 *---------------------------------------------------------------------------*/
8003 #ifndef MPLAYER_CONFIG_H
8004 #define MPLAYER_CONFIG_H
8006 /* Undefine this if you do not want to select mono audio (left or right)
8007 with a stereo MPEG layer 2/3 audio stream. The command line option
8008 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8009 right-only), with 0 being the default.
8011 #define CONFIG_FAKE_MONO 1
8013 /* set up audio OUTBURST. Do not change this! */
8014 #define OUTBURST 512
8016 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8017 #undef FAST_OSD
8018 #undef FAST_OSD_TABLE
8020 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8021 #define MPEG12_POSTPROC 1
8022 #define ATTRIBUTE_ALIGNED_MAX 16
8026 #define CONFIGURATION "$_configuration"
8028 #define MPLAYER_DATADIR "$_datadir"
8029 #define MPLAYER_CONFDIR "$_confdir"
8030 #define MPLAYER_LIBDIR "$_libdir"
8032 /* definitions needed by included libraries */
8033 #define HAVE_INTTYPES_H 1
8034 /* libmpeg2 + FFmpeg */
8035 $def_fast_inttypes
8036 /* libdvdcss */
8037 #define HAVE_ERRNO_H 1
8038 /* libdvdcss + libdvdread */
8039 #define HAVE_LIMITS_H 1
8040 /* libdvdcss + libfaad2 */
8041 #define HAVE_UNISTD_H 1
8042 /* libfaad2 + libdvdread */
8043 #define STDC_HEADERS 1
8044 #define HAVE_MEMCPY 1
8045 /* libfaad2 */
8046 #define HAVE_STRING_H 1
8047 #define HAVE_STRINGS_H 1
8048 #define HAVE_SYS_STAT_H 1
8049 #define HAVE_SYS_TYPES_H 1
8050 /* libdvdnav */
8051 #define READ_CACHE_TRACE 0
8052 /* libdvdread */
8053 #define HAVE_DLFCN_H 1
8054 $def_dvdcss
8057 /* system headers */
8058 $def_alloca_h
8059 $def_alsa_asoundlib_h
8060 $def_altivec_h
8061 $def_malloc_h
8062 $def_mman_h
8063 $def_mman_has_map_failed
8064 $def_soundcard_h
8065 $def_sys_asoundlib_h
8066 $def_sys_soundcard_h
8067 $def_sys_sysinfo_h
8068 $def_termios_h
8069 $def_termios_sys_h
8070 $def_winsock2_h
8073 /* system functions */
8074 $def_gethostbyname2
8075 $def_gettimeofday
8076 $def_glob
8077 $def_langinfo
8078 $def_llrint
8079 $def_log2
8080 $def_lrint
8081 $def_lrintf
8082 $def_map_memalign
8083 $def_memalign
8084 $def_nanosleep
8085 $def_posix_select
8086 $def_round
8087 $def_roundf
8088 $def_select
8089 $def_setenv
8090 $def_shm
8091 $def_strsep
8092 $def_swab
8093 $def_sysi86
8094 $def_sysi86_iv
8095 $def_termcap
8096 $def_termios
8097 $def_truncf
8098 $def_vsscanf
8101 /* system-specific features */
8102 $def_asmalign_pot
8103 $def_builtin_expect
8104 $def_dl
8105 $def_extern_asm
8106 $def_extern_prefix
8107 $def_iconv
8108 $def_kstat
8109 $def_macosx_bundle
8110 $def_macosx_finder
8111 $def_maemo
8112 $def_named_asm_args
8113 $def_priority
8114 $def_quicktime
8115 $def_restrict_keyword
8116 $def_rtc
8117 $def_unrar_exec
8120 /* configurable options */
8121 $def_charset
8122 $def_crash_debug
8123 $def_debug
8124 $def_dynamic_plugins
8125 $def_fastmemcpy
8126 $def_menu
8127 $def_runtime_cpudetection
8128 $def_sighandler
8129 $def_sortsub
8130 $def_stream_cache
8131 $def_pthread_cache
8134 /* CPU stuff */
8135 #define __CPU__ $iproc
8136 $def_words_endian
8137 $def_bigendian
8138 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8139 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8142 /* DVD/VCD/CD */
8143 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8144 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8145 $def_bsdi_dvd
8146 $def_cddb
8147 $def_cdio
8148 $def_cdparanoia
8149 $def_cdrom
8150 $def_dvd
8151 $def_dvd_bsd
8152 $def_dvd_darwin
8153 $def_dvd_linux
8154 $def_dvd_openbsd
8155 $def_dvdio
8156 $def_dvdnav
8157 $def_dvdread
8158 $def_hpux_scsi_h
8159 $def_libcdio
8160 $def_sol_scsi_h
8161 $def_vcd
8164 /* codec libraries */
8165 $def_faac
8166 $def_faad
8167 $def_faad_internal
8168 $def_liba52
8169 $def_liba52_internal
8170 $def_libdca
8171 $def_libdv
8172 $def_liblzo
8173 $def_libmpeg2
8174 $def_mad
8175 $def_mp3lame
8176 $def_mp3lame_preset
8177 $def_mp3lame_preset_medium
8178 $def_mp3lib
8179 $def_musepack
8180 $def_speex
8181 $def_theora
8182 $def_toolame
8183 $def_tremor
8184 $def_twolame
8185 $def_vorbis
8186 $def_x264
8187 $def_xvid
8188 $def_zlib
8190 $def_libnut
8193 /* binary codecs */
8194 $def_qtx
8195 $def_qtx_win32
8196 $def_real
8197 $def_real_path
8198 $def_win32_loader
8199 $def_win32dll
8200 #define WIN32_PATH "$_win32codecsdir"
8201 $def_xanim
8202 $def_xanim_path
8203 $def_xmms
8204 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8207 /* Audio output drivers */
8208 $def_alsa
8209 $def_alsa1x
8210 $def_alsa5
8211 $def_alsa9
8212 $def_arts
8213 $def_coreaudio
8214 $def_dart
8215 $def_esd
8216 $def_esd_latency
8217 $def_jack
8218 $def_nas
8219 $def_openal
8220 $def_openal_h
8221 $def_ossaudio
8222 $def_ossaudio_devdsp
8223 $def_ossaudio_devmixer
8224 $def_pulse
8225 $def_sgiaudio
8226 $def_sunaudio
8227 $def_win32waveout
8229 $def_ladspa
8230 $def_libbs2b
8233 /* input */
8234 $def_apple_ir
8235 $def_apple_remote
8236 $def_ioctl_bt848_h_name
8237 $def_ioctl_meteor_h_name
8238 $def_joystick
8239 $def_lirc
8240 $def_lircc
8241 $def_pvr
8242 $def_radio
8243 $def_radio_bsdbt848
8244 $def_radio_capture
8245 $def_radio_v4l
8246 $def_radio_v4l2
8247 $def_tv
8248 $def_tv_bsdbt848
8249 $def_tv_dshow
8250 $def_tv_v4l
8251 $def_tv_v4l1
8252 $def_tv_v4l2
8255 /* font stuff */
8256 $def_ass
8257 $def_bitmap_font
8258 $def_enca
8259 $def_fontconfig
8260 $def_freetype
8261 $def_fribidi
8264 /* networking */
8265 $def_closesocket
8266 $def_ftp
8267 $def_inet6
8268 $def_inet_aton
8269 $def_inet_pton
8270 $def_live
8271 $def_nemesi
8272 $def_network
8273 $def_smb
8274 $def_socklen_t
8275 $def_vstream
8278 /* libvo options */
8279 $def_3dfx
8280 $def_aa
8281 $def_bl
8282 $def_caca
8283 $def_corevideo
8284 $def_dfbmga
8285 $def_dga
8286 $def_dga1
8287 $def_dga2
8288 $def_direct3d
8289 $def_directfb
8290 $def_directfb_version
8291 $def_directx
8292 $def_dvb
8293 $def_dvb_head
8294 $def_dvbin
8295 $def_dxr2
8296 $def_dxr3
8297 $def_fbdev
8298 $def_ggi
8299 $def_ggiwmh
8300 $def_gif
8301 $def_gif_4
8302 $def_gif_tvt_hack
8303 $def_gl
8304 $def_gl_win32
8305 $def_ivtv
8306 $def_jpeg
8307 $def_kva
8308 $def_md5sum
8309 $def_mga
8310 $def_mng
8311 $def_png
8312 $def_pnm
8313 $def_quartz
8314 $def_s3fb
8315 $def_sdl
8316 $def_sdlbuggy
8317 $def_svga
8318 $def_tdfxfb
8319 $def_tdfxvid
8320 $def_tga
8321 $def_v4l2
8322 $def_vdpau
8323 $def_vesa
8324 $def_vidix
8325 $def_vidix_drv_cyberblade
8326 $def_vidix_drv_ivtv
8327 $def_vidix_drv_mach64
8328 $def_vidix_drv_mga
8329 $def_vidix_drv_mga_crtc2
8330 $def_vidix_drv_nvidia
8331 $def_vidix_drv_pm3
8332 $def_vidix_drv_radeon
8333 $def_vidix_drv_rage128
8334 $def_vidix_drv_s3
8335 $def_vidix_drv_sh_veu
8336 $def_vidix_drv_sis
8337 $def_vidix_drv_unichrome
8338 $def_vidix_pfx
8339 $def_vm
8340 $def_wii
8341 $def_x11
8342 $def_xdpms
8343 $def_xf86keysym
8344 $def_xinerama
8345 $def_xmga
8346 $def_xss
8347 $def_xv
8348 $def_xvmc
8349 $def_xvr100
8350 $def_yuv4mpeg
8351 $def_zr
8354 /* FFmpeg */
8355 $def_libavcodec
8356 $def_libavformat
8357 $def_libavutil
8358 $def_libpostproc
8359 $def_libswscale
8360 $def_libavcodec_internals
8361 $def_libswscale_internals
8363 #define CONFIG_DECODERS 1
8364 #define CONFIG_ENCODERS 1
8365 #define CONFIG_DEMUXERS 1
8366 $def_muxers
8368 $def_arpa_inet_h
8369 $def_bswap
8370 $def_bzlib
8371 $def_dcbzl
8372 $def_dos_paths
8373 $def_fast_64bit
8374 $def_fast_unaligned
8375 $def_memalign_hack
8376 $def_mlib
8377 $def_mkstemp
8378 $def_posix_memalign
8379 $def_pthreads
8380 $def_ten_operands
8381 $def_threads
8382 $def_xform_asm
8383 $def_yasm
8385 #define CONFIG_FASTDIV 0
8386 #define CONFIG_FFSERVER 0
8387 #define CONFIG_GPL 1
8388 #define CONFIG_GRAY 0
8389 #define CONFIG_HARDCODED_TABLES 0
8390 #define CONFIG_LIBVORBIS 0
8391 #define CONFIG_POWERPC_PERF 0
8392 #define CONFIG_SMALL 0
8393 #define CONFIG_SWSCALE 1
8394 #define CONFIG_SWSCALE_ALPHA 1
8396 #define HAVE_ATTRIBUTE_PACKED 1
8397 #define HAVE_GETHRTIME 0
8398 #define HAVE_INLINE_ASM 0
8399 #define HAVE_LDBRX 0
8400 #define HAVE_POLL_H 1
8401 #define HAVE_PPC4XX 0
8402 #define HAVE_VIRTUALALLOC 0
8404 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8405 #define CONFIG_AANDCT 1
8406 #define CONFIG_FFT 1
8407 #define CONFIG_GOLOMB 1
8408 #define CONFIG_LPC 1
8409 #define CONFIG_MDCT 1
8410 #define CONFIG_RDFT 1
8412 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8413 $def_ebx_available
8414 #ifndef MP_DEBUG
8415 #define HAVE_EBP_AVAILABLE 1
8416 #else
8417 #define HAVE_EBP_AVAILABLE 0
8418 #endif
8420 #define CONFIG_H263_VAAPI_HWACCEL 0
8421 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8422 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8423 #define CONFIG_H264_VAAPI_HWACCEL 0
8424 #define CONFIG_VC1_VAAPI_HWACCEL 0
8425 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8427 #endif /* MPLAYER_CONFIG_H */
8430 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8431 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8433 #############################################################################
8435 ./version.sh `$_cc -dumpversion`
8437 cat << EOF
8439 Config files successfully generated by ./configure $_configuration !
8441 Install prefix: $_prefix
8442 Data directory: $_datadir
8443 Config direct.: $_confdir
8445 Byte order: $_byte_order
8446 Optimizing for: $_optimizing
8448 Languages:
8449 Messages: $language_msg
8450 Manual pages: $language_man
8451 Documentation: $language_doc
8453 Enabled optional drivers:
8454 Input: $_inputmodules
8455 Codecs: $_codecmodules
8456 Audio output: $_aomodules
8457 Video output: $_vomodules
8459 Disabled optional drivers:
8460 Input: $_noinputmodules
8461 Codecs: $_nocodecmodules
8462 Audio output: $_noaomodules
8463 Video output: $_novomodules
8465 'config.h' and 'config.mak' contain your configuration options.
8466 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8467 compile *** DO NOT REPORT BUGS if you tweak these files ***
8469 'make' will now compile MPlayer and 'make install' will install it.
8470 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8475 if test "$_mtrr" = yes ; then
8476 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8477 echo
8480 if ! x86_32; then
8481 cat <<EOF
8482 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8483 operating system ($system_name). You may encounter a few files that cannot
8484 be played due to missing open source video/audio codec support.
8490 cat <<EOF
8491 Check $TMPLOG if you wonder why an autodetection failed (make sure
8492 development headers/packages are installed).
8494 NOTE: The --enable-* parameters unconditionally force options on, completely
8495 skipping autodetection. This behavior is unlike what you may be used to from
8496 autoconf-based configure scripts that can decide to override you. This greater
8497 level of control comes at a price. You may have to provide the correct compiler
8498 and linker flags yourself.
8499 If you used one of these options (except --enable-menu and similar ones that
8500 turn on internal features) and experience a compilation or linking failure,
8501 make sure you have passed the necessary compiler/linker flags to configure.
8503 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8507 if test "$_warn_CFLAGS" = yes; then
8508 cat <<EOF
8510 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8511 but:
8513 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8515 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8516 To do so, execute 'CFLAGS= ./configure <options>'
8521 # Last move:
8522 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"