And a 1000l for r27263, swapped a condition, thus setting size to
[mplayer/glamo.git] / configure
blob723da82009aa5d7c3497ee70474dc7e358b8d7a4
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: check the cvs 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 "$_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 # if test "$_feature" = yes ; then
33 # _def_feature='#define HAVE_FEATURE 1'
34 # else
35 # _def_feature='#undef HAVE_FEATURE'
36 # fi
37 # echores "$_feature"
39 # Furthermore you need to add the variable _feature to the list of default
40 # settings and set it to one of yes/no/auto. Also add appropriate
41 # --enable-feature/--disable-feature command line options.
42 # The results of the check should be written to config.h and config.mak
43 # at the end of this script. The variable names used for this should be
44 # uniform, i.e. if the option is named 'feature':
46 # _feature : should have a value of yes/no/auto
47 # _def_feature : '#define ... 1' or '#undef ...' for conditional compilation
48 # _ld_feature : '-L/path/dir -lfeature' GCC options
50 #############################################################################
52 # Prevent locale nonsense from breaking basic text processing utils
53 LC_ALL=C
54 export LC_ALL
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 $_inc_extra $_ld_static $_ld_extra $_libs_mplayer $_libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $_libs_mplayer $_libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMP="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMP"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 tmp_run() {
83 "$TMPEXE" >> "$TMPLOG" 2>&1
86 # Display error message, flushes tempfile, exit
87 die () {
88 echo
89 echo "Error: $@" >&2
90 echo >&2
91 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
92 echo "Check \"$TMPLOG\" if you do not understand why it failed."
93 exit 1
96 # OS test booleans functions
97 issystem() {
98 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
100 linux() { issystem "Linux" || issystem "uClinux" ; return "$?" ; }
101 sunos() { issystem "SunOS" ; return "$?" ; }
102 hpux() { issystem "HP-UX" ; return "$?" ; }
103 irix() { issystem "IRIX" ; return "$?" ; }
104 aix() { issystem "AIX" ; return "$?" ; }
105 cygwin() { issystem "CYGWIN" ; return "$?" ; }
106 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; return "$?" ; }
107 netbsd() { issystem "NetBSD" ; return "$?" ; }
108 bsdos() { issystem "BSD/OS" ; return "$?" ; }
109 openbsd() { issystem "OpenBSD" ; return "$?" ; }
110 dragonfly() { issystem "DragonFly" ; return "$?" ; }
111 qnx() { issystem "QNX" ; return "$?" ; }
112 darwin() { issystem "Darwin" ; return "$?" ; }
113 gnu() { issystem "GNU" ; return "$?" ; }
114 mingw32() { issystem "MINGW32" ; return "$?" ; }
115 morphos() { issystem "MorphOS" ; return "$?" ; }
116 amigaos() { issystem "AmigaOS" ; return "$?" ; }
117 win32() { cygwin || mingw32 ; return "$?" ; }
118 beos() { issystem "BEOS" ; return "$?" ; }
119 os2() { issystem "OS/2" ; return "$?" ; }
121 # arch test boolean functions
122 # x86/x86pc is used by QNX
123 x86_32() {
124 case "$host_arch" in
125 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
126 *) return 1 ;;
127 esac
130 x86_64() {
131 case "$host_arch" in
132 x86_64|amd64) return 0 ;;
133 *) return 1 ;;
134 esac
137 x86() {
138 x86_32 || x86_64
141 ppc() {
142 case "$host_arch" in
143 ppc|powerpc) return 0;;
144 *) return 1;;
145 esac
148 alpha() {
149 case "$host_arch" in
150 alpha) return 0;;
151 *) return 1;;
152 esac
155 arm() {
156 case "$host_arch" in
157 arm) return 0;;
158 *) return 1;;
159 esac
162 sh3() {
163 case "$host_arch" in
164 sh3) return 0;;
165 *) return 1;;
166 esac
169 # Use this before starting a check
170 echocheck() {
171 echo "============ Checking for $@ ============" >> "$TMPLOG"
172 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
175 # Use this to echo the results of a check
176 echores() {
177 if test "$_res_comment" ; then
178 _res_comment="($_res_comment)"
180 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
181 echo "##########################################" >> "$TMPLOG"
182 echo "" >> "$TMPLOG"
183 echo "$@ $_res_comment"
184 _res_comment=""
186 #############################################################################
188 # Check how echo works in this /bin/sh
189 case `echo -n` in
190 -n) _echo_n= _echo_c='\c' ;; # SysV echo
191 *) _echo_n='-n ' _echo_c= ;; # BSD echo
192 esac
194 msg_langs=`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"`
195 man_langs=`echo DOCS/man/??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g"`
196 doc_langs=`echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g"`
198 show_help(){
199 cat << EOF
200 Usage: $0 [OPTIONS]...
202 Configuration:
203 -h, --help display this help and exit
205 Installation directories:
206 --prefix=DIR prefix directory for installation [/usr/local]
207 --bindir=DIR directory for installing binaries [PREFIX/bin]
208 --datadir=DIR directory for installing machine independent
209 data files (skins, etc) [PREFIX/share/mplayer]
210 --mandir=DIR directory for installing man pages [PREFIX/share/man]
211 --confdir=DIR directory for installing configuration files
212 [PREFIX/etc/mplayer]
213 --libdir=DIR directory for object code libraries [PREFIX/lib]
214 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
215 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
216 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
217 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
219 Optional features:
220 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
221 --disable-mplayer disable MPlayer compilation [enable]
222 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
223 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
224 --disable-largefiles disable support for files > 2GB [enable]
225 --enable-linux-devfs set default devices to devfs [disable]
226 --enable-termcap use termcap database for key codes [autodetect]
227 --enable-termios use termios database for key codes [autodetect]
228 --disable-iconv disable iconv for encoding conversion [autodetect]
229 --disable-langinfo do not use langinfo [autodetect]
230 --enable-lirc enable LIRC (remote control) support [autodetect]
231 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
232 --enable-joystick enable joystick support [disable]
233 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
234 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
235 --disable-vm disable X video mode extensions [autodetect]
236 --disable-xf86keysym disable support for multimedia keys [autodetect]
237 --enable-radio enable radio interface [disable]
238 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
239 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
240 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
241 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
242 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
243 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
244 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
245 --disable-tv-teletext disable TV teletext interface [autodetect]
246 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
247 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
248 --disable-network disable networking [enable]
249 --enable-winsock2 enable winsock2 [autodetect]
250 --enable-smb enable Samba (SMB) input [autodetect]
251 --enable-live enable LIVE555 Streaming Media [autodetect]
252 --enable-nemesi enable Nemesi Streaming Media [autodetect]
253 --disable-dvdnav disable libdvdnav [autodetect]
254 --disable-dvdread disable libdvdread [autodetect]
255 --disable-dvdread-internal disable internal libdvdread [autodetect]
256 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
257 --disable-cdparanoia disable cdparanoia [autodetect]
258 --disable-cddb disable cddb [autodetect]
259 --disable-bitmap-font disable bitmap font support [enable]
260 --disable-freetype disable FreeType 2 font rendering [autodetect]
261 --disable-fontconfig disable fontconfig font lookup [autodetect]
262 --disable-unrarexec disable using of UnRAR executable [enabled]
263 --enable-menu enable OSD menu (not DVD menu) [disabled]
264 --disable-sortsub disable subtitle sorting [enabled]
265 --enable-fribidi enable the FriBiDi libs [autodetect]
266 --disable-enca disable ENCA charset oracle library [autodetect]
267 --disable-macosx disable Mac OS X specific features [autodetect]
268 --disable-maemo disable maemo specific features [autodetect]
269 --enable-macosx-finder-support enable Mac OS X Finder invocation
270 parameter parsing [disabled]
271 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
272 --disable-inet6 disable IPv6 support [autodetect]
273 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
274 --disable-ftp disable FTP support [enabled]
275 --disable-vstream disable TiVo vstream client support [autodetect]
276 --disable-pthreads disable Posix threads support [autodetect]
277 --disable-w32threads disable Win32 threads support [autodetect]
278 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
279 --enable-rpath enable runtime linker path for extra libs [disabled]
281 Codecs:
282 --enable-gif enable GIF support [autodetect]
283 --enable-png enable PNG input/output support [autodetect]
284 --enable-jpeg enable JPEG input/output support [autodetect]
285 --enable-libcdio enable external libcdio [autodetect]
286 --enable-liblzo enable external liblzo [autodetect]
287 --disable-win32dll disable Win32 DLL support [enabled]
288 --disable-qtx disable QuickTime codecs support [enabled]
289 --disable-xanim disable XAnim codecs support [enabled]
290 --disable-real disable RealPlayer codecs support [enabled]
291 --disable-xvid disable Xvid [autodetect]
292 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
293 --disable-x264 disable x264 [autodetect]
294 --disable-x264-lavc disable x264 in libavcodec [autodetect]
295 --disable-libnut disable libnut [autodetect]
296 --disable-libavutil_a disable static libavutil [autodetect]
297 --disable-libavcodec_a disable static libavcodec [autodetect]
298 --disable-libavformat_a disable static libavformat [autodetect]
299 --disable-libpostproc_a disable static libpostproc [autodetect]
300 --disable-libavutil_so disable shared libavutil [autodetect]
301 --disable-libavcodec_so disable shared libavcodec [autodetect]
302 --disable-libavformat_so disable shared libavformat [autodetect]
303 --disable-libpostproc_so disable shared libpostproc [autodetect]
304 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
305 in libavcodec [enabled]
306 --disable-tremor-internal disable internal Tremor [enabled]
307 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
308 --enable-tremor-external enable external Tremor [autodetect]
309 --disable-libvorbis disable libvorbis support [autodetect]
310 --disable-speex disable Speex support [autodetect]
311 --enable-theora enable OggTheora libraries [autodetect]
312 --enable-faad-external enable external FAAD2 (AAC) [autodetect]
313 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
314 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
315 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
316 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
317 --disable-ladspa disable LADSPA plugin support [autodetect]
318 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
319 --disable-mad disable libmad (MPEG audio) support [autodetect]
320 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
321 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
322 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
323 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
324 --enable-xmms enable XMMS input plugin support [disabled]
325 --enable-libdca enable libdca support [autodetect]
326 --disable-mp3lib disable builtin mp3lib [enabled]
327 --disable-liba52 disable builtin liba52 [enabled]
328 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
329 --disable-musepack disable musepack support [autodetect]
330 --disable-libamr_nb disable libamr narrowband [autodetect]
331 --disable-libamr_wb disable libamr wideband [autodetect]
332 --disable-decoder=DECODER disable specified FFmpeg decoder
333 --enable-decoder=DECODER enable specified FFmpeg decoder
334 --disable-encoder=ENCODER disable specified FFmpeg encoder
335 --enable-encoder=ENCODER enable specified FFmpeg encoder
336 --disable-parser=PARSER disable specified FFmpeg parser
337 --enable-parser=PARSER enable specified FFmpeg parser
338 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
339 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
340 --disable-muxer=MUXER disable specified FFmpeg muxer
341 --enable-muxer=MUXER enable specified FFmpeg muxer
343 Video output:
344 --disable-vidix disable VIDIX [for x86 *nix]
345 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
346 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
347 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
348 --disable-vidix-pcidb disable VIDIX PCI device name database
349 --enable-dhahelper enable VIDIX dhahelper support
350 --enable-svgalib_helper enable VIDIX svgalib_helper support
351 --enable-gl enable OpenGL video output [autodetect]
352 --enable-dga2 enable DGA 2 support [autodetect]
353 --enable-dga1 enable DGA 1 support [autodetect]
354 --enable-vesa enable VESA video output [autodetect]
355 --enable-svga enable SVGAlib video output [autodetect]
356 --enable-sdl enable SDL video output [autodetect]
357 --enable-aa enable AAlib video output [autodetect]
358 --enable-caca enable CACA video output [autodetect]
359 --enable-ggi enable GGI video output [autodetect]
360 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
361 --enable-directx enable DirectX video output [autodetect]
362 --enable-dxr2 enable DXR2 video output [autodetect]
363 --enable-dxr3 enable DXR3/H+ video output [autodetect]
364 --enable-ivtv enable IVTV TV-Out video output [autodetect]
365 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
366 --enable-dvb enable DVB video output [autodetect]
367 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
368 --enable-mga enable mga_vid video output [autodetect]
369 --enable-xmga enable mga_vid X11 video output [autodetect]
370 --enable-xv enable Xv video output [autodetect]
371 --enable-xvmc enable XvMC acceleration [disable]
372 --enable-vm enable XF86VidMode support [autodetect]
373 --enable-xinerama enable Xinerama support [autodetect]
374 --enable-x11 enable X11 video output [autodetect]
375 --enable-xshape enable XShape support [autodetect]
376 --disable-xss disable screensaver support via xss [autodetect]
377 --enable-fbdev enable FBDev video output [autodetect]
378 --enable-mlib enable mediaLib video output (Solaris) [disable]
379 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
380 --enable-tdfxfb enable tdfxfb video output [disable]
381 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
382 --enable-directfb enable DirectFB video output [autodetect]
383 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
384 --enable-bl enable Blinkenlights video output [disable]
385 --enable-tdfxvid enable tdfx_vid video output [disable]
386 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
387 --disable-tga disable Targa video output [enable]
388 --disable-pnm disable PNM video output [enable]
389 --disable-md5sum disable md5sum video output [enable]
390 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
392 Audio output:
393 --disable-alsa disable ALSA audio output [autodetect]
394 --disable-ossaudio disable OSS audio output [autodetect]
395 --disable-arts disable aRts audio output [autodetect]
396 --disable-esd disable esd audio output [autodetect]
397 --disable-pulse disable Pulseaudio audio output [autodetect]
398 --disable-jack disable JACK audio output [autodetect]
399 --disable-openal disable OpenAL audio output [autodetect]
400 --disable-nas disable NAS audio output [autodetect]
401 --disable-sgiaudio disable SGI audio output [autodetect]
402 --disable-sunaudio disable Sun audio output [autodetect]
403 --disable-win32waveout disable Windows waveout audio output [autodetect]
404 --disable-select disable using select() on the audio device [enable]
406 Miscellaneous options:
407 --enable-runtime-cpudetection enable runtime CPU detection [disable]
408 --enable-cross-compile enable cross-compilation [autodetect]
409 --cc=COMPILER C compiler to build MPlayer [gcc]
410 --host-cc=COMPILER C compiler for tools needed while building [gcc]
411 --as=ASSEMBLER assembler to build MPlayer [as]
412 --ar=AR librarian to build MPlayer [ar]
413 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
414 --windres=WINDRES windres to build MPlayer [windres]
415 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
416 --enable-static build a statically linked binary
417 --charset=charset convert the console messages to this character set
418 --language=list a white space or comma separated list of languages for
419 translated man pages, the first language is used for
420 messages and the GUI (the environment variable
421 \$LINGUAS is also honored) [en]
422 (Available: all $msg_langs)
423 --with-install=PATH path to a custom install program
425 Advanced options:
426 --enable-mmx enable MMX [autodetect]
427 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
428 --enable-3dnow enable 3DNow! [autodetect]
429 --enable-3dnowext enable extended 3DNow! [autodetect]
430 --enable-sse enable SSE [autodetect]
431 --enable-sse2 enable SSE2 [autodetect]
432 --enable-ssse3 enable SSSE3 [autodetect]
433 --enable-shm enable shm [autodetect]
434 --enable-altivec enable AltiVec (PowerPC) [autodetect]
435 --enable-armv5te enable DSP extensions (ARM) [autodetect]
436 --enable-armv6 enable ARMv6 (ARM) [autodetect]
437 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
438 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
439 --enable-big-endian force byte order to big-endian [autodetect]
440 --enable-debug[=1-3] compile-in debugging information [disable]
441 --enable-profile compile-in profiling information [disable]
442 --disable-sighandler disable sighandler for crashes [enable]
443 --enable-crash-debug enable automatic gdb attach on crash [disable]
444 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
446 Use these options if autodetection fails (Options marked with (*) accept
447 multiple paths separated by ':'):
448 --extra-libs=FLAGS extra linker flags
449 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
450 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
451 --with-extraincdir=DIR extra header search paths in DIR (*)
452 --with-extralibdir=DIR extra linker search paths in DIR (*)
453 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
455 --with-freetype-config=PATH path to freetype-config
456 --with-fribidi-config=PATH path to fribidi-config
457 --with-glib-config=PATH path to glib*-config
458 --with-gtk-config=PATH path to gtk*-config
459 --with-sdl-config=PATH path to sdl*-config
460 --with-dvdnav-config=PATH path to dvdnav-config
461 --with-dvdread-config=PATH path to dvdread-config
463 This configure script is NOT autoconf-based, even though its output is similar.
464 It will try to autodetect all configuration options. If you --enable an option
465 it will be forcefully turned on, skipping autodetection. This can break
466 compilation, so you need to know what you are doing.
468 exit 0
469 } #show_help()
471 # GOTCHA: the variables below defines the default behavior for autodetection
472 # and have - unless stated otherwise - at least 2 states : yes no
473 # If autodetection is available then the third state is: auto
474 _mmx=auto
475 _3dnow=auto
476 _3dnowext=auto
477 _mmxext=auto
478 _sse=auto
479 _sse2=auto
480 _ssse3=auto
481 _cmov=auto
482 _fast_cmov=auto
483 _armv5te=auto
484 _armv6=auto
485 _iwmmxt=auto
486 _mtrr=auto
487 _altivec=auto
488 _install=install
489 _ranlib=ranlib
490 _windres=windres
491 _cc=cc
492 _ar=ar
493 test "$CC" && _cc="$CC"
494 _as=auto
495 _runtime_cpudetection=no
496 _cross_compile=auto
497 _prefix="/usr/local"
498 _libavutil_a=auto
499 _libavutil_so=auto
500 _libavcodec_a=auto
501 _libamr_nb=auto
502 _libamr_wb=auto
503 _libavdecoders_all=`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
504 _libavdecoders=` echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER// `
505 _libavencoders_all=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
506 _libavencoders=` echo $_libavencoders_all | sed 's/ LIB[A-Z0-9_]*_ENCODER//g'`
507 _libavparsers_all=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
508 _libavparsers=$_libavparsers_all
509 _libavbsfs_all=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`
510 _libavbsfs=$_libavbsfs_all
511 _libavdemuxers_all=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`
512 _libavdemuxers=`echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER// `
513 _libavmuxers_all=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`
514 _libavmuxers=`echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// `
515 _libavprotocols_all=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`
516 _libavcodec_so=auto
517 _libavformat_a=auto
518 _libavformat_so=auto
519 _libpostproc_a=auto
520 _libpostproc_so=auto
521 _libavcodec_mpegaudio_hp=yes
522 _mencoder=yes
523 _mplayer=yes
524 _x11=auto
525 _xshape=auto
526 _xss=auto
527 _dga1=auto
528 _dga2=auto
529 _xv=auto
530 _xvmc=no #auto when complete
531 _sdl=auto
532 _directx=auto
533 _win32waveout=auto
534 _nas=auto
535 _png=auto
536 _jpeg=auto
537 _pnm=yes
538 _md5sum=yes
539 _yuv4mpeg=yes
540 _gif=auto
541 _gl=auto
542 _ggi=auto
543 _ggiwmh=auto
544 _aa=auto
545 _caca=auto
546 _svga=auto
547 _vesa=auto
548 _fbdev=auto
549 _dvb=auto
550 _dvbhead=auto
551 _dxr2=auto
552 _dxr3=auto
553 _ivtv=auto
554 _v4l2=auto
555 _iconv=auto
556 _langinfo=auto
557 _rtc=auto
558 _ossaudio=auto
559 _arts=auto
560 _esd=auto
561 _pulse=auto
562 _jack=auto
563 _openal=auto
564 _libcdio=auto
565 _liblzo=auto
566 _mad=auto
567 _mp3lame=auto
568 _mp3lame_lavc=auto
569 _toolame=auto
570 _twolame=auto
571 _tremor_internal=yes
572 _tremor_low=no
573 _tremor_external=auto
574 _libvorbis=auto
575 _speex=auto
576 _theora=auto
577 _mp3lib=yes
578 _liba52=yes
579 _libdca=auto
580 _libmpeg2=auto
581 _faad_internal=auto
582 _faad_external=auto
583 _faad_fixed=no
584 _faac=auto
585 _faac_lavc=auto
586 _ladspa=auto
587 _xmms=no
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 _tv_teletext=auto
623 _pvr=auto
624 _network=yes
625 _winsock2=auto
626 _smbsupport=auto
627 _vidix=auto
628 _vidix_pcidb=yes
629 _dhahelper=no
630 _svgalib_helper=no
631 _joystick=no
632 _xvid=auto
633 _xvid_lavc=auto
634 _x264=auto
635 _x264_lavc=auto
636 _libnut=auto
637 _lirc=auto
638 _lircc=auto
639 _apple_remote=auto
640 _apple_ir=auto
641 _gui=no
642 _gtk1=no
643 _termcap=auto
644 _termios=auto
645 _3dfx=no
646 _s3fb=no
647 _tdfxfb=no
648 _tdfxvid=no
649 _xvr100=auto
650 _tga=yes
651 _directfb=auto
652 _zr=auto
653 _bl=no
654 _largefiles=yes
655 #_language=en
656 _shm=auto
657 _linux_devfs=no
658 _charset="UTF-8"
659 _dynamic_plugins=no
660 _crash_debug=no
661 _sighandler=yes
662 _libdv=auto
663 _cdparanoia=auto
664 _cddb=auto
665 _big_endian=auto
666 _bitmap_font=yes
667 _freetype=auto
668 _fontconfig=auto
669 _menu=no
670 _qtx=auto
671 _macosx=auto
672 _maemo=auto
673 _macosx_finder_support=no
674 _macosx_bundle=auto
675 _sortsub=yes
676 _freetypeconfig='freetype-config'
677 _fribidi=auto
678 _fribidiconfig='fribidi-config'
679 _enca=auto
680 _inet6=auto
681 _gethostbyname2=auto
682 _ftp=yes
683 _musepack=auto
684 _vstream=auto
685 _pthreads=auto
686 _w32threads=auto
687 _ass=auto
688 _rpath=no
689 _asmalign_pot=auto
690 _stream_cache=yes
691 _def_stream_cache="#define USE_STREAM_CACHE 1"
692 _need_shmem=yes
693 for ac_option do
694 case "$ac_option" in
695 --help|-help|-h)
696 show_help
698 --prefix=*)
699 _prefix=`echo $ac_option | cut -d '=' -f 2`
701 --bindir=*)
702 _bindir=`echo $ac_option | cut -d '=' -f 2`
704 --datadir=*)
705 _datadir=`echo $ac_option | cut -d '=' -f 2`
707 --mandir=*)
708 _mandir=`echo $ac_option | cut -d '=' -f 2`
710 --confdir=*)
711 _confdir=`echo $ac_option | cut -d '=' -f 2`
713 --libdir=*)
714 _libdir=`echo $ac_option | cut -d '=' -f 2`
716 --codecsdir=*)
717 _codecsdir=`echo $ac_option | cut -d '=' -f 2`
719 --win32codecsdir=*)
720 _win32codecsdir=`echo $ac_option | cut -d '=' -f 2`
722 --xanimcodecsdir=*)
723 _xanimcodecsdir=`echo $ac_option | cut -d '=' -f 2`
725 --realcodecsdir=*)
726 _realcodecsdir=`echo $ac_option | cut -d '=' -f 2`
728 --with-extraincdir=*)
729 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
731 --with-extralibdir=*)
732 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
735 --with-install=*)
736 _install=`echo $ac_option | cut -d '=' -f 2 `
738 --with-xvmclib=*)
739 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
742 --with-sdl-config=*)
743 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
745 --with-freetype-config=*)
746 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
748 --with-fribidi-config=*)
749 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
751 --with-gtk-config=*)
752 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
754 --with-glib-config=*)
755 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
757 --with-dvdnav-config=*)
758 _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
760 --with-dvdread-config=*)
761 _dvdreadconfig=`echo $ac_option | cut -d '=' -f 2`
764 --extra-libs=*)
765 _extra_libs=`echo $ac_option | cut -d '=' -f 2`
767 --extra-libs-mplayer=*)
768 _libs_mplayer=`echo $ac_option | cut -d '=' -f 2`
770 --extra-libs-mencoder=*)
771 _libs_mencoder=`echo $ac_option | cut -d '=' -f 2`
774 --target=*)
775 _target=`echo $ac_option | cut -d '=' -f 2`
777 --cc=*)
778 _cc=`echo $ac_option | cut -d '=' -f 2`
780 --host-cc=*)
781 _host_cc=`echo $ac_option | cut -d '=' -f 2`
783 --as=*)
784 _as=`echo $ac_option | cut -d '=' -f 2`
786 --ar=*)
787 _ar=`echo $ac_option | cut -d '=' -f 2`
789 --ranlib=*)
790 _ranlib=`echo $ac_option | cut -d '=' -f 2`
792 --windres=*)
793 _windres=`echo $ac_option | cut -d '=' -f 2`
795 --charset=*)
796 _charset=`echo $ac_option | cut -d '=' -f 2`
798 --language=*)
799 _language=`echo $ac_option | cut -d '=' -f 2`
802 --enable-static)
803 _ld_static='-static'
805 --disable-static)
806 _ld_static=''
808 --enable-profile)
809 _profile='-p'
811 --disable-profile)
812 _profile=
814 --enable-debug)
815 _debug='-g'
817 --enable-debug=*)
818 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
820 --disable-debug)
821 _debug=
823 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
824 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
825 --enable-cross-compile) _cross_compile=yes ;;
826 --disable-cross-compile) _cross_compile=no ;;
827 --enable-mencoder) _mencoder=yes ;;
828 --disable-mencoder) _mencoder=no ;;
829 --enable-mplayer) _mplayer=yes ;;
830 --disable-mplayer) _mplayer=no ;;
831 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
832 --disable-dynamic-plugins) _dynamic_plugins=no ;;
833 --enable-x11) _x11=yes ;;
834 --disable-x11) _x11=no ;;
835 --enable-xshape) _xshape=yes ;;
836 --disable-xshape) _xshape=no ;;
837 --enable-xss) _xss=yes ;;
838 --disable-xss) _xss=no ;;
839 --enable-xv) _xv=yes ;;
840 --disable-xv) _xv=no ;;
841 --enable-xvmc) _xvmc=yes ;;
842 --disable-xvmc) _xvmc=no ;;
843 --enable-sdl) _sdl=yes ;;
844 --disable-sdl) _sdl=no ;;
845 --enable-directx) _directx=yes ;;
846 --disable-directx) _directx=no ;;
847 --enable-win32waveout) _win32waveout=yes ;;
848 --disable-win32waveout) _win32waveout=no ;;
849 --enable-nas) _nas=yes ;;
850 --disable-nas) _nas=no ;;
851 --enable-png) _png=yes ;;
852 --disable-png) _png=no ;;
853 --enable-jpeg) _jpeg=yes ;;
854 --disable-jpeg) _jpeg=no ;;
855 --enable-pnm) _pnm=yes ;;
856 --disable-pnm) _pnm=no ;;
857 --enable-md5sum) _md5sum=yes ;;
858 --disable-md5sum) _md5sum=no ;;
859 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
860 --disable-yuv4mpeg) _yuv4mpeg=no ;;
861 --enable-gif) _gif=yes ;;
862 --disable-gif) _gif=no ;;
863 --enable-gl) _gl=yes ;;
864 --disable-gl) _gl=no ;;
865 --enable-ggi) _ggi=yes ;;
866 --disable-ggi) _ggi=no ;;
867 --enable-ggiwmh) _ggiwmh=yes ;;
868 --disable-ggiwmh) _ggiwmh=no ;;
869 --enable-aa) _aa=yes ;;
870 --disable-aa) _aa=no ;;
871 --enable-caca) _caca=yes ;;
872 --disable-caca) _caca=no ;;
873 --enable-svga) _svga=yes ;;
874 --disable-svga) _svga=no ;;
875 --enable-vesa) _vesa=yes ;;
876 --disable-vesa) _vesa=no ;;
877 --enable-fbdev) _fbdev=yes ;;
878 --disable-fbdev) _fbdev=no ;;
879 --enable-dvb) _dvb=yes ;;
880 --disable-dvb) _dvb=no ;;
881 --enable-dvbhead) _dvbhead=yes ;;
882 --disable-dvbhead) _dvbhead=no ;;
883 --enable-dxr2) _dxr2=yes ;;
884 --disable-dxr2) _dxr2=no ;;
885 --enable-dxr3) _dxr3=yes ;;
886 --disable-dxr3) _dxr3=no ;;
887 --enable-ivtv) _ivtv=yes ;;
888 --disable-ivtv) _ivtv=no ;;
889 --enable-v4l2) _v4l2=yes ;;
890 --disable-v4l2) _v4l2=no ;;
891 --enable-iconv) _iconv=yes ;;
892 --disable-iconv) _iconv=no ;;
893 --enable-langinfo) _langinfo=yes ;;
894 --disable-langinfo) _langinfo=no ;;
895 --enable-rtc) _rtc=yes ;;
896 --disable-rtc) _rtc=no ;;
897 --enable-libdv) _libdv=yes ;;
898 --disable-libdv) _libdv=no ;;
899 --enable-ossaudio) _ossaudio=yes ;;
900 --disable-ossaudio) _ossaudio=no ;;
901 --enable-arts) _arts=yes ;;
902 --disable-arts) _arts=no ;;
903 --enable-esd) _esd=yes ;;
904 --disable-esd) _esd=no ;;
905 --enable-pulse) _pulse=yes ;;
906 --disable-pulse) _pulse=no ;;
907 --enable-jack) _jack=yes ;;
908 --disable-jack) _jack=no ;;
909 --enable-openal) _openal=yes ;;
910 --disable-openal) _openal=no ;;
911 --enable-mad) _mad=yes ;;
912 --disable-mad) _mad=no ;;
913 --enable-mp3lame) _mp3lame=yes ;;
914 --disable-mp3lame) _mp3lame=no ;;
915 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
916 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
917 --enable-toolame) _toolame=yes ;;
918 --disable-toolame) _toolame=no ;;
919 --enable-twolame) _twolame=yes ;;
920 --disable-twolame) _twolame=no ;;
921 --enable-libcdio) _libcdio=yes ;;
922 --disable-libcdio) _libcdio=no ;;
923 --enable-liblzo) _liblzo=yes ;;
924 --disable-liblzo) _liblzo=no ;;
925 --enable-libvorbis) _libvorbis=yes ;;
926 --disable-libvorbis) _libvorbis=no ;;
927 --enable-speex) _speex=yes ;;
928 --disable-speex) _speex=no ;;
929 --enable-tremor-internal) _tremor_internal=yes ;;
930 --disable-tremor-internal) _tremor_internal=no ;;
931 --enable-tremor-low) _tremor_low=yes ;;
932 --disable-tremor-low) _tremor_low=no ;;
933 --enable-tremor-external) _tremor_external=yes ;;
934 --disable-tremor-external) _tremor_external=no ;;
935 --enable-theora) _theora=yes ;;
936 --disable-theora) _theora=no ;;
937 --enable-mp3lib) _mp3lib=yes ;;
938 --disable-mp3lib) _mp3lib=no ;;
939 --enable-liba52) _liba52=yes ;;
940 --disable-liba52) _liba52=no ;;
941 --enable-libdca) _libdca=yes ;;
942 --disable-libdca) _libdca=no ;;
943 --enable-libmpeg2) _libmpeg2=yes ;;
944 --disable-libmpeg2) _libmpeg2=no ;;
945 --enable-musepack) _musepack=yes ;;
946 --disable-musepack) _musepack=no ;;
947 --enable-faad-internal) _faad_internal=yes ;;
948 --disable-faad-internal) _faad_internal=no ;;
949 --enable-faad-external) _faad_external=yes ;;
950 --disable-faad-external) _faad_external=no ;;
951 --enable-faad-fixed) _faad_fixed=yes ;;
952 --disable-faad-fixed) _faad_fixed=no ;;
953 --enable-faac) _faac=yes ;;
954 --disable-faac) _faac=no ;;
955 --enable-faac-lavc) _faac_lavc=yes ;;
956 --disable-faac-lavc) _faac_lavc=no ;;
957 --enable-ladspa) _ladspa=yes ;;
958 --disable-ladspa) _ladspa=no ;;
959 --enable-xmms) _xmms=yes ;;
960 --disable-xmms) _xmms=no ;;
961 --enable-dvdread) _dvdread=yes ;;
962 --disable-dvdread) _dvdread=no ;;
963 --enable-dvdread-internal) _dvdread_internal=yes ;;
964 --disable-dvdread-internal) _dvdread_internal=no ;;
965 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
966 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
967 --enable-dvdnav) _dvdnav=yes ;;
968 --disable-dvdnav) _dvdnav=no ;;
969 --enable-xanim) _xanim=yes ;;
970 --disable-xanim) _xanim=no ;;
971 --enable-real) _real=yes ;;
972 --disable-real) _real=no ;;
973 --enable-live) _live=yes ;;
974 --disable-live) _live=no ;;
975 --enable-nemesi) _nemesi=yes ;;
976 --disable-nemesi) _nemesi=no ;;
977 --enable-xinerama) _xinerama=yes ;;
978 --disable-xinerama) _xinerama=no ;;
979 --enable-mga) _mga=yes ;;
980 --disable-mga) _mga=no ;;
981 --enable-xmga) _xmga=yes ;;
982 --disable-xmga) _xmga=no ;;
983 --enable-vm) _vm=yes ;;
984 --disable-vm) _vm=no ;;
985 --enable-xf86keysym) _xf86keysym=yes ;;
986 --disable-xf86keysym) _xf86keysym=no ;;
987 --enable-mlib) _mlib=yes ;;
988 --disable-mlib) _mlib=no ;;
989 --enable-sunaudio) _sunaudio=yes ;;
990 --disable-sunaudio) _sunaudio=no ;;
991 --enable-sgiaudio) _sgiaudio=yes ;;
992 --disable-sgiaudio) _sgiaudio=no ;;
993 --enable-alsa) _alsa=yes ;;
994 --disable-alsa) _alsa=no ;;
995 --enable-tv) _tv=yes ;;
996 --disable-tv) _tv=no ;;
997 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
998 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
999 --enable-tv-v4l1) _tv_v4l1=yes ;;
1000 --disable-tv-v4l1) _tv_v4l1=no ;;
1001 --enable-tv-v4l2) _tv_v4l2=yes ;;
1002 --disable-tv-v4l2) _tv_v4l2=no ;;
1003 --enable-tv-dshow) _tv_dshow=yes ;;
1004 --disable-tv-dshow) _tv_dshow=no ;;
1005 --enable-tv-teletext) _tv_teletext=yes ;;
1006 --disable-tv-teletext) _tv_teletext=no ;;
1007 --enable-radio) _radio=yes ;;
1008 --enable-radio-capture) _radio_capture=yes ;;
1009 --disable-radio-capture) _radio_capture=no ;;
1010 --disable-radio) _radio=no ;;
1011 --enable-radio-v4l) _radio_v4l=yes ;;
1012 --disable-radio-v4l) _radio_v4l=no ;;
1013 --enable-radio-v4l2) _radio_v4l2=yes ;;
1014 --disable-radio-v4l2) _radio_v4l2=no ;;
1015 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1016 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1017 --enable-pvr) _pvr=yes ;;
1018 --disable-pvr) _pvr=no ;;
1019 --enable-fastmemcpy) _fastmemcpy=yes ;;
1020 --disable-fastmemcpy) _fastmemcpy=no ;;
1021 --enable-network) _network=yes ;;
1022 --disable-network) _network=no ;;
1023 --enable-winsock2) _winsock2=yes ;;
1024 --disable-winsock2) _winsock2=no ;;
1025 --enable-smb) _smbsupport=yes ;;
1026 --disable-smb) _smbsupport=no ;;
1027 --enable-vidix) _vidix=yes ;;
1028 --disable-vidix) _vidix=no ;;
1029 --with-vidix-drivers=*)
1030 _vidix_drivers=`echo $ac_option | cut -d '=' -f 2`
1032 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1033 --enable-dhahelper) _dhahelper=yes ;;
1034 --disable-dhahelper) _dhahelper=no ;;
1035 --enable-svgalib_helper) _svgalib_helper=yes ;;
1036 --disable-svgalib_helper) _svgalib_helper=no ;;
1037 --enable-joystick) _joystick=yes ;;
1038 --disable-joystick) _joystick=no ;;
1039 --enable-xvid) _xvid=yes ;;
1040 --disable-xvid) _xvid=no ;;
1041 --enable-xvid-lavc) _xvid_lavc=yes ;;
1042 --disable-xvid-lavc) _xvid_lavc=no ;;
1043 --enable-x264) _x264=yes ;;
1044 --disable-x264) _x264=no ;;
1045 --enable-x264-lavc) _x264_lavc=yes ;;
1046 --disable-x264-lavc) _x264_lavc=no ;;
1047 --enable-libnut) _libnut=yes ;;
1048 --disable-libnut) _libnut=no ;;
1049 --enable-libavutil_a) _libavutil_a=yes ;;
1050 --disable-libavutil_a) _libavutil_a=no ;;
1051 --enable-libavutil_so) _libavutil_so=yes ;;
1052 --disable-libavutil_so) _libavutil_so=no ;;
1053 --enable-libavcodec_a) _libavcodec_a=yes ;;
1054 --disable-libavcodec_a) _libavcodec_a=no ;;
1055 --enable-libavcodec_so) _libavcodec_so=yes ;;
1056 --disable-libavcodec_so) _libavcodec_so=no ;;
1057 --enable-libamr_nb) _libamr_nb=yes ;;
1058 --disable-libamr_nb) _libamr_nb=no ;;
1059 --enable-libamr_wb) _libamr_wb=yes ;;
1060 --disable-libamr_wb) _libamr_wb=no ;;
1061 --enable-decoder=*) _libavdecoders="$_libavdecoders `echo $ac_option | cut -d '=' -f 2`" ;;
1062 --disable-decoder=*) _libavdecoders=`echo $_libavdecoders | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1063 --enable-encoder=*) _libavencoders="$_libavencoders `echo $ac_option | cut -d '=' -f 2`" ;;
1064 --disable-encoder=*) _libavencoders=`echo $_libavencoders | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1065 --enable-parser=*) _libavparsers="$_libavparsers `echo $ac_option | cut -d '=' -f 2`" ;;
1066 --disable-parser=*) _libavparsers=`echo $_libavparsers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1067 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers `echo $ac_option | cut -d '=' -f 2`" ;;
1068 --disable-demuxer=*) _libavdemuxers=`echo $_libavdemuxers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1069 --enable-muxer=*) _libavmuxers="$_libavmuxers `echo $ac_option | cut -d '=' -f 2`" ;;
1070 --disable-muxer=*) _libavmuxers=`echo $_libavmuxers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1071 --enable-libavformat_a) _libavformat_a=yes ;;
1072 --disable-libavformat_a) _libavformat_a=no ;;
1073 --enable-libavformat_so) _libavformat_so=yes ;;
1074 --disable-libavformat_so) _libavformat_so=no ;;
1075 --enable-libpostproc_a) _libpostproc_a=yes ;;
1076 --disable-libpostproc_a) _libpostproc_a=no ;;
1077 --enable-libpostproc_so) _libpostproc_so=yes ;;
1078 --disable-libpostproc_so) _libpostproc_so=no ;;
1079 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1080 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1082 --enable-lirc) _lirc=yes ;;
1083 --disable-lirc) _lirc=no ;;
1084 --enable-lircc) _lircc=yes ;;
1085 --disable-lircc) _lircc=no ;;
1086 --enable-apple-remote) _apple_remote=yes ;;
1087 --disable-apple-remote) _apple_remote=no ;;
1088 --enable-apple-ir) _apple_ir=yes ;;
1089 --disable-apple-ir) _apple_ir=no ;;
1090 --enable-gui) _gui=yes ;;
1091 --disable-gui) _gui=no ;;
1092 --enable-gtk1) _gtk1=yes ;;
1093 --disable-gtk1) _gtk1=no ;;
1094 --enable-termcap) _termcap=yes ;;
1095 --disable-termcap) _termcap=no ;;
1096 --enable-termios) _termios=yes ;;
1097 --disable-termios) _termios=no ;;
1098 --enable-3dfx) _3dfx=yes ;;
1099 --disable-3dfx) _3dfx=no ;;
1100 --enable-s3fb) _s3fb=yes ;;
1101 --disable-s3fb) _s3fb=no ;;
1102 --enable-tdfxfb) _tdfxfb=yes ;;
1103 --disable-tdfxfb) _tdfxfb=no ;;
1104 --disable-tdfxvid) _tdfxvid=no ;;
1105 --enable-tdfxvid) _tdfxvid=yes ;;
1106 --disable-xvr100) _xvr100=no ;;
1107 --enable-xvr100) _xvr100=yes ;;
1108 --disable-tga) _tga=no ;;
1109 --enable-tga) _tga=yes ;;
1110 --enable-directfb) _directfb=yes ;;
1111 --disable-directfb) _directfb=no ;;
1112 --enable-zr) _zr=yes ;;
1113 --disable-zr) _zr=no ;;
1114 --enable-bl) _bl=yes ;;
1115 --disable-bl) _bl=no ;;
1116 --enable-mtrr) _mtrr=yes ;;
1117 --disable-mtrr) _mtrr=no ;;
1118 --enable-largefiles) _largefiles=yes ;;
1119 --disable-largefiles) _largefiles=no ;;
1120 --enable-shm) _shm=yes ;;
1121 --disable-shm) _shm=no ;;
1122 --enable-select) _select=yes ;;
1123 --disable-select) _select=no ;;
1124 --enable-linux-devfs) _linux_devfs=yes ;;
1125 --disable-linux-devfs) _linux_devfs=no ;;
1126 --enable-cdparanoia) _cdparanoia=yes ;;
1127 --disable-cdparanoia) _cdparanoia=no ;;
1128 --enable-cddb) _cddb=yes ;;
1129 --disable-cddb) _cddb=no ;;
1130 --enable-big-endian) _big_endian=yes ;;
1131 --disable-big-endian) _big_endian=no ;;
1132 --enable-bitmap-font) _bitmap_font=yes ;;
1133 --disable-bitmap-font) _bitmap_font=no ;;
1134 --enable-freetype) _freetype=yes ;;
1135 --disable-freetype) _freetype=no ;;
1136 --enable-fontconfig) _fontconfig=yes ;;
1137 --disable-fontconfig) _fontconfig=no ;;
1138 --enable-unrarexec) _unrar_exec=yes ;;
1139 --disable-unrarexec) _unrar_exec=no ;;
1140 --enable-ftp) _ftp=yes ;;
1141 --disable-ftp) _ftp=no ;;
1142 --enable-vstream) _vstream=yes ;;
1143 --disable-vstream) _vstream=no ;;
1144 --enable-pthreads) _pthreads=yes ;;
1145 --disable-pthreads) _pthreads=no ;;
1146 --enable-w32threads) _w32threads=yes ;;
1147 --disable-w32threads) _w32threads=no ;;
1148 --enable-ass) _ass=yes ;;
1149 --disable-ass) _ass=no ;;
1150 --enable-rpath) _rpath=yes ;;
1151 --disable-rpath) _rpath=no ;;
1153 --enable-fribidi) _fribidi=yes ;;
1154 --disable-fribidi) _fribidi=no ;;
1156 --enable-enca) _enca=yes ;;
1157 --disable-enca) _enca=no ;;
1159 --enable-inet6) _inet6=yes ;;
1160 --disable-inet6) _inet6=no ;;
1162 --enable-gethostbyname2) _gethostbyname2=yes ;;
1163 --disable-gethostbyname2) _gethostbyname2=no ;;
1165 --enable-dga1) _dga1=yes ;;
1166 --disable-dga1) _dga1=no ;;
1167 --enable-dga2) _dga2=yes ;;
1168 --disable-dga2) _dga2=no ;;
1170 --enable-menu) _menu=yes ;;
1171 --disable-menu) _menu=no ;;
1173 --enable-qtx) _qtx=yes ;;
1174 --disable-qtx) _qtx=no ;;
1176 --enable-macosx) _macosx=yes ;;
1177 --disable-macosx) _macosx=no ;;
1178 --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1179 --disable-macosx-finder-support) _macosx_finder_support=no ;;
1180 --enable-macosx-bundle) _macosx_bundle=yes;;
1181 --disable-macosx-bundle) _macosx_bundle=no;;
1183 --enable-maemo) _maemo=yes ;;
1184 --disable-maemo) _maemo=no ;;
1186 --enable-sortsub) _sortsub=yes ;;
1187 --disable-sortsub) _sortsub=no ;;
1189 --enable-crash-debug) _crash_debug=yes ;;
1190 --disable-crash-debug) _crash_debug=no ;;
1191 --enable-sighandler) _sighandler=yes ;;
1192 --disable-sighandler) _sighandler=no ;;
1193 --enable-win32dll) _win32dll=yes ;;
1194 --disable-win32dll) _win32dll=no ;;
1196 --enable-sse) _sse=yes ;;
1197 --disable-sse) _sse=no ;;
1198 --enable-sse2) _sse2=yes ;;
1199 --disable-sse2) _sse2=no ;;
1200 --enable-ssse3) _ssse3=yes ;;
1201 --disable-ssse3) _ssse3=no ;;
1202 --enable-mmxext) _mmxext=yes ;;
1203 --disable-mmxext) _mmxext=no ;;
1204 --enable-3dnow) _3dnow=yes ;;
1205 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1206 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1207 --disable-3dnowext) _3dnowext=no ;;
1208 --enable-cmov) _cmov=yes ;;
1209 --disable-cmov) _cmov=no ;;
1210 --enable-fast-cmov) _fast_cmov=yes ;;
1211 --disable-fast-cmov) _fast_cmov=no ;;
1212 --enable-altivec) _altivec=yes ;;
1213 --disable-altivec) _altivec=no ;;
1214 --enable-armv5te) _armv5te=yes ;;
1215 --disable-armv5te) _armv5te=no ;;
1216 --enable-armv6) _armv6=yes ;;
1217 --disable-armv6) _armv6=no ;;
1218 --enable-iwmmxt) _iwmmxt=yes ;;
1219 --disable-iwmmxt) _iwmmxt=no ;;
1220 --enable-mmx) _mmx=yes ;;
1221 --disable-mmx) # 3Dnow! and MMX2 require MMX
1222 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1225 echo "Unknown parameter: $ac_option"
1226 exit 1
1229 esac
1230 done
1232 # Atmos: moved this here, to be correct, if --prefix is specified
1233 test -z "$_bindir" && _bindir="$_prefix/bin"
1234 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1235 test -z "$_mandir" && _mandir="$_prefix/share/man"
1236 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1237 test -z "$_libdir" && _libdir="$_prefix/lib"
1239 # Determine our OS name and CPU architecture
1240 if test -z "$_target" ; then
1241 # OS name
1242 system_name=`uname -s 2>&1`
1243 case "$system_name" in
1244 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1246 IRIX*)
1247 system_name=IRIX
1249 GNU/kFreeBSD)
1250 system_name=FreeBSD
1252 HP-UX*)
1253 system_name=HP-UX
1255 [cC][yY][gG][wW][iI][nN]*)
1256 system_name=CYGWIN
1258 MINGW32*)
1259 system_name=MINGW32
1261 OS/2*)
1262 system_name=OS/2
1265 system_name="$system_name-UNKNOWN"
1267 esac
1270 # host's CPU/instruction set
1271 host_arch=`uname -p 2>&1`
1272 case "$host_arch" in
1273 i386|sparc|ppc|alpha|arm|sh3|mips|vax)
1275 powerpc) # Darwin returns 'powerpc'
1276 host_arch=ppc
1278 *) # uname -p on Linux returns 'unknown' for the processor type,
1279 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1281 # Maybe uname -m (machine hardware name) returns something we
1282 # recognize.
1284 # x86/x86pc is used by QNX
1285 case "`uname -m 2>&1`" in
1286 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 ;;
1287 ia64) host_arch=ia64 ;;
1288 x86_64|amd64)
1289 if [ -n "`$_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p'`" -a \
1290 -z "`echo $CFLAGS | grep -- -m32`" ]; then
1291 host_arch=x86_64
1292 else
1293 host_arch=i386
1296 macppc|ppc|ppc64) host_arch=ppc ;;
1297 alpha) host_arch=alpha ;;
1298 sparc) host_arch=sparc ;;
1299 sparc64) host_arch=sparc64 ;;
1300 parisc*|hppa*|9000*) host_arch=hppa ;;
1301 arm*|zaurus|cats) host_arch=arm ;;
1302 sh3) host_arch=sh3 ;;
1303 s390) host_arch=s390 ;;
1304 s390x) host_arch=s390x ;;
1305 mips*) host_arch=mips ;;
1306 vax) host_arch=vax ;;
1307 xtensa*) host_arch=xtensa ;;
1308 *) host_arch=UNKNOWN ;;
1309 esac
1311 esac
1312 else # if test -z "$_target"
1313 system_name=`echo $_target | cut -d '-' -f 2`
1314 case "`echo $system_name | tr A-Z a-z`" in
1315 linux) system_name=Linux ;;
1316 freebsd) system_name=FreeBSD ;;
1317 gnu/kfreebsd) system_name=FreeBSD ;;
1318 netbsd) system_name=NetBSD ;;
1319 bsd/os) system_name=BSD/OS ;;
1320 openbsd) system_name=OpenBSD ;;
1321 dragonfly) system_name=DragonFly ;;
1322 sunos) system_name=SunOS ;;
1323 qnx) system_name=QNX ;;
1324 morphos) system_name=MorphOS ;;
1325 amigaos) system_name=AmigaOS ;;
1326 mingw32msvc) system_name=MINGW32 ;;
1327 esac
1328 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1329 host_arch=`echo $_target | cut -d '-' -f 1`
1330 if test `echo $host_arch` != "x86_64" ; then
1331 host_arch=`echo $host_arch | tr '_' '-'`
1335 echo "Detected operating system: $system_name"
1336 echo "Detected host architecture: $host_arch"
1338 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1339 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1343 _timer=timer-linux.c
1344 _getch=getch2.c
1345 if freebsd ; then
1346 _ld_extra="$_ld_extra -L/usr/local/lib"
1347 _inc_extra="$_inc_extra -I/usr/local/include"
1350 if netbsd || dragonfly ; then
1351 _ld_extra="$_ld_extra -L/usr/pkg/lib"
1352 _inc_extra="$_inc_extra -I/usr/pkg/include"
1355 if darwin; then
1356 _ld_extra="$_ld_extra -L/usr/local/lib"
1357 _inc_extra="$_inc_extra -I/usr/local/include"
1358 _timer=timer-darwin.c
1361 if aix ; then
1362 _ld_extra="$_ld_extra -lC"
1365 if irix ; then
1366 _ranlib='ar -r'
1367 elif linux ; then
1368 _ranlib='true'
1371 if win32 ; then
1372 _exesuf=".exe"
1373 # -lwinmm is always needed for osdep/timer-win2.c
1374 _ld_extra="$_ld_extra -lwinmm"
1375 _pe_executable=yes
1376 _timer=timer-win2.c
1379 if mingw32 ; then
1380 _getch=getch2-win.c
1381 _need_shmem=no
1384 if cygwin ; then
1385 _def_confwin32='#define WIN32'
1388 if amigaos ; then
1389 _select=no
1390 _sighandler=no
1391 _stream_cache=no
1392 _def_stream_cache="#undef USE_STREAM_CACHE"
1395 if qnx ; then
1396 _ld_extra="$_ld_extra -lph"
1399 if os2 ; then
1400 _exesuf=".exe"
1401 _getch=getch2-os2.c
1402 _need_shmem=no
1403 _ar="emxomfar -p256"
1404 _ranlib="echo ignoring ranlib"
1405 _ld_extra="$_ld_extra -Zomf -Zstack 16384 -Zbin-files -Zargs-wild -lmmpm2"
1408 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1409 test "$I" && break
1410 done
1413 TMPLOG="configure.log"
1414 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1415 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1416 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1417 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1418 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1420 rm -f "$TMPLOG"
1421 echo configuration: $_configuration > "$TMPLOG"
1422 echo >> "$TMPLOG"
1425 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
1426 # if used as 'head -1' instead of 'head -n 1', but older versions don't
1427 # know about '-n'.
1428 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
1429 _head() { head -$1 2>/dev/null ; }
1430 else
1431 _head() { head -n $1 2>/dev/null ; }
1433 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
1434 _tail() { tail -$1 2>/dev/null ; }
1435 else
1436 _tail() { tail -n $1 2>/dev/null ; }
1439 # Checking CC version...
1440 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1441 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
1442 echocheck "$_cc version"
1443 cc_vendor=intel
1444 cc_name=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 1`
1445 cc_version=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
1446 _cc_major=`echo $cc_version | cut -d '.' -f 1`
1447 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
1448 # TODO verify older icc/ecc compatibility
1449 case $cc_version in
1451 cc_version="v. ?.??, bad"
1452 cc_fail=yes
1454 10.1)
1455 cc_version="$cc_version, ok"
1458 cc_version="$cc_version, bad"
1459 cc_fail=yes
1461 esac
1462 echores "$cc_version"
1463 else
1464 for _cc in "$_cc" cc gcc ; do
1465 cc_name_tmp=`$_cc -v 2>&1 | _tail 1 | cut -d ' ' -f 1`
1466 if test "$cc_name_tmp" = "gcc"; then
1467 cc_name=$cc_name_tmp
1468 echocheck "$_cc version"
1469 cc_vendor=gnu
1470 cc_version=`$_cc -dumpversion 2>&1`
1471 case $cc_version in
1472 2.96*)
1473 cc_fail=yes
1476 _cc_major=`echo $cc_version | cut -d '.' -f 1`
1477 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
1478 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
1480 esac
1481 echores "$cc_version"
1482 break
1484 done
1485 fi # icc
1486 test "$cc_fail" = yes && die "unsupported compiler version"
1488 echocheck "host cc"
1489 test "$_host_cc" || _host_cc=$_cc
1490 echores $_host_cc
1492 echocheck "cross compilation"
1493 if test $_cross_compile = auto ; then
1494 cat > $TMPC << EOF
1495 int main(void) { return 0; }
1497 _cross_compile=yes
1498 cc_check && "$TMPEXE" && _cross_compile=no
1500 echores $_cross_compile
1502 if test $_cross_compile = yes; then
1503 tmp_run() {
1504 return 0
1508 # ---
1510 # now that we know what compiler should be used for compilation, try to find
1511 # out which assembler is used by the $_cc compiler
1512 if test "$_as" = auto ; then
1513 _as=`$_cc -print-prog-name=as`
1514 test -z "$_as" && _as=as
1517 # XXX: this should be ok..
1518 _cpuinfo="echo"
1520 if test "$_runtime_cpudetection" = no ; then
1522 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1523 # FIXME: Remove the cygwin check once AMD CPUs are supported
1524 if test -r /proc/cpuinfo && ! cygwin; then
1525 # Linux with /proc mounted, extract CPU information from it
1526 _cpuinfo="cat /proc/cpuinfo"
1527 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1528 # FreeBSD with Linux emulation /proc mounted,
1529 # extract CPU information from it
1530 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1531 elif darwin && ! x86_32 ; then
1532 # use hostinfo on Darwin
1533 _cpuinfo="hostinfo"
1534 elif aix; then
1535 # use 'lsattr' on AIX
1536 _cpuinfo="lsattr -E -l proc0 -a type"
1537 elif x86; then
1538 # all other OSes try to extract CPU information from a small helper
1539 # program cpuinfo instead
1540 $_cc -o cpuinfo$_exesuf cpuinfo.c
1541 _cpuinfo="./cpuinfo$_exesuf"
1544 if x86 ; then
1545 # gather more CPU information
1546 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
1547 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1548 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1549 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1550 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
1552 exts=`$_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | _head 1`
1554 pparam=`echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1555 -e s/xmm/sse/ -e s/kni/sse/`
1557 for ext in $pparam ; do
1558 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1559 done
1561 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1562 test $_sse = kernel_check && _mmxext=kernel_check
1564 echocheck "CPU vendor"
1565 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1567 echocheck "CPU type"
1568 echores "$pname"
1571 fi # test "$_runtime_cpudetection" = no
1573 if x86 && test "$_runtime_cpudetection" = no ; then
1574 extcheck() {
1575 if test "$1" = kernel_check ; then
1576 echocheck "kernel support of $2"
1577 cat > $TMPC <<EOF
1578 #include <stdlib.h>
1579 #include <signal.h>
1580 void catch() { exit(1); }
1581 int main(void) {
1582 signal(SIGILL, catch);
1583 __asm__ __volatile__ ("$3":::"memory"); return 0;
1587 if cc_check && tmp_run ; then
1588 eval _$2=yes
1589 echores "yes"
1590 _optimizing="$_optimizing $2"
1591 return 0
1592 else
1593 eval _$2=no
1594 echores "failed"
1595 echo "It seems that your kernel does not correctly support $2."
1596 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1597 return 1
1600 return 0
1603 extcheck $_mmx "mmx" "emms"
1604 extcheck $_mmxext "mmxext" "sfence"
1605 extcheck $_3dnow "3dnow" "femms"
1606 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1607 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1608 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1609 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1610 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1612 echocheck "mtrr support"
1613 if test "$_mtrr" = kernel_check ; then
1614 _mtrr="yes"
1615 _optimizing="$_optimizing mtrr"
1617 echores "$_mtrr"
1619 if test "$_gcc3_ext" != ""; then
1620 # if we had to disable sse/sse2 because the active kernel does not
1621 # support this instruction set extension, we also have to tell
1622 # gcc3 to not generate sse/sse2 instructions for normal C code
1623 cat > $TMPC << EOF
1624 int main(void) { return 0; }
1626 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1632 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM ARMV4L SH3 POWERPC PPC ALPHA SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1633 case "$host_arch" in
1634 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1635 _arch='X86 X86_32'
1636 _target_arch_x86="ARCH_X86 = yes"
1637 _target_arch="ARCH_X86_32 = yes"
1638 _def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1639 iproc=486
1640 proc=i486
1643 if test "$_runtime_cpudetection" = no ; then
1644 case "$pvendor" in
1645 AuthenticAMD)
1646 case "$pfamily" in
1647 3) proc=i386 iproc=386 ;;
1648 4) proc=i486 iproc=486 ;;
1649 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1650 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1651 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1652 proc=k6-3
1653 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1654 proc=geode
1655 elif test "$pmodel" -ge 8; then
1656 proc=k6-2
1657 elif test "$pmodel" -ge 6; then
1658 proc=k6
1659 else
1660 proc=i586
1663 6) iproc=686
1664 # It's a bit difficult to determine the correct type of Family 6
1665 # AMD CPUs just from their signature. Instead, we check directly
1666 # whether it supports SSE.
1667 if test "$_sse" = yes; then
1668 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1669 proc=athlon-xp
1670 else
1671 # Again, gcc treats athlon and athlon-tbird similarly.
1672 proc=athlon
1675 15) iproc=686
1676 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1677 # caught and remedied in the optimization tests below.
1678 proc=k8
1681 *) proc=k8 iproc=686 ;;
1682 esac
1684 GenuineIntel)
1685 case "$pfamily" in
1686 3) proc=i386 iproc=386 ;;
1687 4) proc=i486 iproc=486 ;;
1688 5) iproc=586
1689 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1690 proc=pentium-mmx # 4 is desktop, 8 is mobile
1691 else
1692 proc=i586
1695 6) iproc=686
1696 if test "$pmodel" -ge 15; then
1697 proc=core2
1698 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1699 proc=pentium-m
1700 elif test "$pmodel" -ge 7; then
1701 proc=pentium3
1702 elif test "$pmodel" -ge 3; then
1703 proc=pentium2
1704 else
1705 proc=i686
1708 15) iproc=686
1709 # A nocona in 32-bit mode has no more capabilities than a prescott.
1710 if test "$pmodel" -ge 3; then
1711 proc=prescott
1712 else
1713 proc=pentium4
1715 test $_fast_cmov = "auto" && _fast_cmov=no
1717 *) proc=prescott iproc=686 ;;
1718 esac
1720 CentaurHauls)
1721 case "$pfamily" in
1722 5) iproc=586
1723 if test "$pmodel" -ge 8; then
1724 proc=winchip2
1725 elif test "$pmodel" -ge 4; then
1726 proc=winchip-c6
1727 else
1728 proc=i586
1731 6) iproc=686
1732 if test "$pmodel" -ge 9; then
1733 proc=c3-2
1734 else
1735 proc=c3
1736 iproc=586
1739 *) proc=i686 iproc=i686 ;;
1740 esac
1742 unknown)
1743 case "$pfamily" in
1744 3) proc=i386 iproc=386 ;;
1745 4) proc=i486 iproc=486 ;;
1746 *) proc=i586 iproc=586 ;;
1747 esac
1750 proc=i586 iproc=586 ;;
1751 esac
1752 fi # test "$_runtime_cpudetection" = no
1755 # check that gcc supports our CPU, if not, fall back to earlier ones
1756 # LGB: check -mcpu and -march swithing step by step with enabling
1757 # to fall back till 386.
1759 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1761 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1762 cpuopt=-mtune
1763 else
1764 cpuopt=-mcpu
1767 echocheck "GCC & CPU optimization abilities"
1768 cat > $TMPC << EOF
1769 int main(void) { return 0; }
1771 if test "$_runtime_cpudetection" = no ; then
1772 cc_check -march=native && proc=native
1773 if test "$proc" = "k8"; then
1774 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1776 if test "$proc" = "athlon-xp"; then
1777 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1779 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1780 cc_check -march=$proc $cpuopt=$proc || proc=k6
1782 if test "$proc" = "k6" || test "$proc" = "c3"; then
1783 if ! cc_check -march=$proc $cpuopt=$proc; then
1784 if cc_check -march=i586 $cpuopt=i686; then
1785 proc=i586-i686
1786 else
1787 proc=i586
1791 if test "$proc" = "prescott" ; then
1792 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1794 if test "$proc" = "core2" ; then
1795 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1797 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
1798 cc_check -march=$proc $cpuopt=$proc || proc=i686
1800 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1801 cc_check -march=$proc $cpuopt=$proc || proc=i586
1803 if test "$proc" = "i586"; then
1804 cc_check -march=$proc $cpuopt=$proc || proc=i486
1806 if test "$proc" = "i486" ; then
1807 cc_check -march=$proc $cpuopt=$proc || proc=i386
1809 if test "$proc" = "i386" ; then
1810 cc_check -march=$proc $cpuopt=$proc || proc=error
1812 if test "$proc" = "error" ; then
1813 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1814 _mcpu=""
1815 _march=""
1816 _optimizing=""
1817 elif test "$proc" = "i586-i686"; then
1818 _march="-march=i586"
1819 _mcpu="$cpuopt=i686"
1820 _optimizing="$proc"
1821 else
1822 _march="-march=$proc"
1823 _mcpu="$cpuopt=$proc"
1824 _optimizing="$proc"
1826 else # if test "$_runtime_cpudetection" = no
1827 _mcpu="$cpuopt=generic"
1828 # at least i486 required, for bswap instruction
1829 _march="-march=i486"
1830 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1831 cc_check $_mcpu || _mcpu=""
1832 cc_check $_march $_mcpu || _march=""
1835 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1836 ## autodetected mcpu/march parameters
1837 if test "$_target" ; then
1838 # TODO: it may be a good idea to check GCC and fall back in all cases
1839 if test "$host_arch" = "i586-i686"; then
1840 _march="-march=i586"
1841 _mcpu="$cpuopt=i686"
1842 else
1843 _march="-march=$host_arch"
1844 _mcpu="$cpuopt=$host_arch"
1847 proc="$host_arch"
1849 case "$proc" in
1850 i386) iproc=386 ;;
1851 i486) iproc=486 ;;
1852 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1853 i686|athlon*|pentium*) iproc=686 ;;
1854 *) iproc=586 ;;
1855 esac
1858 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1859 _fast_cmov="yes"
1860 else
1861 _fast_cmov="no"
1864 echores "$proc"
1867 ia64)
1868 _arch='IA64'
1869 _target_arch='ARCH_IA64 = yes'
1870 iproc='ia64'
1871 proc=''
1872 _march=''
1873 _mcpu=''
1874 _optimizing=''
1877 x86_64|amd64)
1878 _arch='X86 X86_64'
1879 _target_arch='ARCH_X86_64 = yes'
1880 _target_arch_x86="ARCH_X86 = yes"
1881 _def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1882 iproc='x86_64'
1884 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1885 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1886 cpuopt=-mtune
1887 else
1888 cpuopt=-mcpu
1890 if test "$_runtime_cpudetection" = no ; then
1891 case "$pvendor" in
1892 AuthenticAMD)
1893 proc=k8;;
1894 GenuineIntel)
1895 case "$pfamily" in
1896 6) proc=core2;;
1898 # 64-bit prescotts exist, but as far as GCC is concerned they
1899 # have the same capabilities as a nocona.
1900 proc=nocona
1901 test $_fast_cmov = "auto" && _fast_cmov=no
1903 esac
1906 proc=error;;
1907 esac
1908 fi # test "$_runtime_cpudetection" = no
1910 echocheck "GCC & CPU optimization abilities"
1911 cat > $TMPC << EOF
1912 int main(void) { return 0; }
1914 # This is a stripped-down version of the i386 fallback.
1915 if test "$_runtime_cpudetection" = no ; then
1916 cc_check -march=native && proc=native
1917 # --- AMD processors ---
1918 if test "$proc" = "k8"; then
1919 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1921 # This will fail if gcc version < 3.3, which is ok because earlier
1922 # versions don't really support 64-bit on amd64.
1923 # Is this a valid assumption? -Corey
1924 if test "$proc" = "athlon-xp"; then
1925 cc_check -march=$proc $cpuopt=$proc || proc=error
1927 # --- Intel processors ---
1928 if test "$proc" = "core2"; then
1929 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1931 if test "$proc" = "nocona"; then
1932 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1934 if test "$proc" = "pentium4"; then
1935 cc_check -march=$proc $cpuopt=$proc || proc=error
1938 _march="-march=$proc"
1939 _mcpu="$cpuopt=$proc"
1940 if test "$proc" = "error" ; then
1941 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1942 _mcpu=""
1943 _march=""
1945 else # if test "$_runtime_cpudetection" = no
1946 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1947 _march="-march=x86-64"
1948 _mcpu="$cpuopt=generic"
1949 cc_check $_mcpu || _mcpu="x86-64"
1950 cc_check $_mcpu || _mcpu=""
1951 cc_check $_march $_mcpu || _march=""
1954 _optimizing=""
1956 echores "$proc"
1959 sparc)
1960 _arch='SPARC'
1961 _target_arch='ARCH_SPARC = yes'
1962 iproc='sparc'
1963 if sunos ; then
1964 echocheck "CPU type"
1965 karch=`uname -m`
1966 case "`echo $karch`" in
1967 sun4) proc=v7 ;;
1968 sun4c) proc=v7 ;;
1969 sun4d) proc=v8 ;;
1970 sun4m) proc=v8 ;;
1971 sun4u) proc=ultrasparc _vis='yes' ;;
1972 sun4v) proc=v9 ;;
1973 *) proc=v8 ;;
1974 esac
1975 echores "$proc"
1976 else
1977 proc=v8
1979 _march=''
1980 _mcpu="-mcpu=$proc"
1981 _optimizing="$proc"
1984 sparc64)
1985 _arch='SPARC'
1986 _target_arch='ARCH_SPARC = yes'
1987 _vis='yes'
1988 iproc='sparc'
1989 proc='ultrasparc'
1990 _march=''
1991 _mcpu="-mcpu=$proc"
1992 _optimizing="$proc"
1995 arm|armv4l|armv5tel)
1996 _arch='ARM ARMV4L'
1997 _target_arch='ARCH_ARMV4L = yes'
1998 iproc='arm'
1999 proc=''
2000 _march=''
2001 _mcpu=''
2002 _optimizing=''
2005 sh3)
2006 _arch='SH3'
2007 _target_arch='ARCH_SH3 = yes'
2008 iproc='sh3'
2009 proc=''
2010 _march='-m3'
2011 _mcpu='-ml'
2012 _optimizing=''
2015 ppc|powerpc)
2016 _arch='POWERPC PPC'
2017 _def_dcbzl='#undef HAVE_DCBZL'
2018 _target_arch='ARCH_POWERPC = yes'
2019 iproc='ppc'
2020 proc=''
2021 _march=''
2022 _mcpu=''
2023 _optimizing=''
2025 echocheck "CPU type"
2026 case $system_name in
2027 Linux)
2028 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
2029 if test -n "`$_cpuinfo | grep altivec`"; then
2030 test $_altivec = auto && _altivec=yes
2033 Darwin)
2034 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
2035 if [ `sysctl -n hw.vectorunit` -eq 1 -o \
2036 "`sysctl -n hw.optional.altivec 2> /dev/null`" = "1" ]; then
2037 test $_altivec = auto && _altivec=yes
2040 NetBSD)
2041 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2042 case $cc_version in
2043 2*|3.0*|3.1*|3.2*|3.3*)
2046 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
2047 test $_altivec = auto && _altivec=yes
2050 esac
2052 AIX)
2053 proc=`$_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//'`
2055 esac
2056 if test "$_altivec" = yes; then
2057 echores "$proc altivec"
2058 else
2059 _altivec=no
2060 echores "$proc"
2063 echocheck "GCC & CPU optimization abilities"
2065 if test -n "$proc"; then
2066 case "$proc" in
2067 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2068 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2069 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2070 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2071 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2072 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2073 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2074 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2075 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2076 *) ;;
2077 esac
2078 # gcc 3.1(.1) and up supports 7400 and 7450
2079 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2080 case "$proc" in
2081 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2082 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2083 *) ;;
2084 esac
2086 # gcc 3.2 and up supports 970
2087 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2088 case "$proc" in
2089 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2090 _def_dcbzl='#define HAVE_DCBZL 1' ;;
2091 *) ;;
2092 esac
2094 # gcc 3.3 and up supports POWER4
2095 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2096 case "$proc" in
2097 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2098 *) ;;
2099 esac
2101 # gcc 3.4 and up supports 440*
2102 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2103 case "$proc" in
2104 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2105 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2106 *) ;;
2107 esac
2109 # gcc 4.0 and up supports POWER5
2110 if test "$_cc_major" -ge "4"; then
2111 case "$proc" in
2112 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2113 *) ;;
2114 esac
2118 if test -n "$_mcpu"; then
2119 _optimizing=`echo $_mcpu | cut -c 8-`
2120 echores "$_optimizing"
2121 else
2122 echores "none"
2127 alpha)
2128 _arch='ALPHA'
2129 _target_arch='ARCH_ALPHA = yes'
2130 iproc='alpha'
2131 _march=''
2133 echocheck "CPU type"
2134 cat > $TMPC << EOF
2135 int main(void) {
2136 unsigned long ver, mask;
2137 asm ("implver %0" : "=r" (ver));
2138 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
2139 printf("%ld-%x\n", ver, ~mask);
2140 return 0;
2143 $_cc -o "$TMPEXE" "$TMPC"
2144 case `"$TMPEXE"` in
2146 0-0) proc="ev4"; _mvi="0";;
2147 1-0) proc="ev5"; _mvi="0";;
2148 1-1) proc="ev56"; _mvi="0";;
2149 1-101) proc="pca56"; _mvi="1";;
2150 2-303) proc="ev6"; _mvi="1";;
2151 2-307) proc="ev67"; _mvi="1";;
2152 2-1307) proc="ev68"; _mvi="1";;
2153 esac
2154 echores "$proc"
2156 echocheck "GCC & CPU optimization abilities"
2157 if test "$proc" = "ev68" ; then
2158 cc_check -mcpu=$proc || proc=ev67
2160 if test "$proc" = "ev67" ; then
2161 cc_check -mcpu=$proc || proc=ev6
2163 _mcpu="-mcpu=$proc"
2164 echores "$proc"
2166 _optimizing="$proc"
2169 mips)
2170 _arch='SGI_MIPS'
2171 _target_arch='ARCH_SGI_MIPS = yes'
2172 iproc='sgi-mips'
2173 proc=''
2174 _march=''
2175 _mcpu=''
2176 _optimizing=''
2178 if irix ; then
2179 echocheck "CPU type"
2180 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
2181 case "`echo $proc`" in
2182 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2183 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2184 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2185 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2186 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2187 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2188 esac
2189 # gcc < 3.x does not support -mtune.
2190 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2191 _mcpu=''
2193 echores "$proc"
2198 hppa)
2199 _arch='PA_RISC'
2200 _target_arch='ARCH_PA_RISC = yes'
2201 iproc='PA-RISC'
2202 proc=''
2203 _march=''
2204 _mcpu=''
2205 _optimizing=''
2208 s390)
2209 _arch='S390'
2210 _target_arch='ARCH_S390 = yes'
2211 iproc='390'
2212 proc=''
2213 _march=''
2214 _mcpu=''
2215 _optimizing=''
2218 s390x)
2219 _arch='S390X'
2220 _target_arch='ARCH_S390X = yes'
2221 iproc='390x'
2222 proc=''
2223 _march=''
2224 _mcpu=''
2225 _optimizing=''
2228 vax)
2229 _arch='VAX'
2230 _target_arch='ARCH_VAX = yes'
2231 iproc='vax'
2232 proc=''
2233 _march=''
2234 _mcpu=''
2235 _optimizing=''
2238 xtensa)
2239 _arch='XTENSA'
2240 _target_arch='ARCH_XTENSA = yes'
2241 iproc='xtensa'
2242 proc=''
2243 _march=''
2244 _mcpu=''
2245 _optimizing=''
2248 generic)
2249 _arch='GENERIC'
2250 _target_arch='ARCH_GENERIC = yes'
2251 iproc=''
2252 proc=''
2253 _march=''
2254 _mcpu=''
2255 _optimizing=''
2259 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2260 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2261 die "unsupported architecture $host_arch"
2263 esac # case "$host_arch" in
2265 if test "$_runtime_cpudetection" = yes ; then
2266 if x86 ; then
2267 test "$_cmov" != no && _cmov=yes
2268 x86_32 && _cmov=no
2269 test "$_mmx" != no && _mmx=yes
2270 test "$_3dnow" != no && _3dnow=yes
2271 test "$_3dnowext" != no && _3dnowext=yes
2272 test "$_mmxext" != no && _mmxext=yes
2273 test "$_sse" != no && _sse=yes
2274 test "$_sse2" != no && _sse2=yes
2275 test "$_ssse3" != no && _ssse3=yes
2276 test "$_mtrr" != no && _mtrr=yes
2278 if ppc; then
2279 _altivec=yes
2284 echocheck "extern symbol prefix"
2285 cat > $TMPC << EOF
2286 int ff_extern;
2288 cc_check -c || die "Symbol mangling check failed."
2289 sym=$(nm -P -g $TMPEXE)
2290 extern_prefix=${sym%%ff_extern*}
2291 _def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2292 echores $extern_prefix
2295 echocheck "assembler support of -pipe option"
2296 cat > $TMPC << EOF
2297 int main(void) { return 0; }
2299 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2302 echocheck "compiler support of named assembler arguments"
2303 _named_asm_args=yes
2304 _def_named_asm_args="#define NAMED_ASM_ARGS 1"
2305 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2306 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2307 _named_asm_args=no
2308 _def_named_asm_args="#undef NAMED_ASM_ARGS"
2310 echores $_named_asm_args
2313 if darwin && test "$cc_vendor" = "gnu" ; then
2314 echocheck "GCC support of -mstackrealign"
2315 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2316 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2317 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2318 # wrong code with this flag, but this can be worked around by adding
2319 # -fno-unit-at-a-time as described in the blog post at
2320 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2321 cat > $TMPC << EOF
2322 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2323 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2325 cc_check -O4 -mstackrealign && tmp_run && _stackrealign=-mstackrealign
2326 test -z "$_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2327 && tmp_run && _stackrealign="-mstackrealign -fno-unit-at-a-time"
2328 test -n "$_stackrealign" && echores "yes" || echores "no"
2329 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2332 # Checking for CFLAGS
2333 _install_strip="-s"
2334 if test "$_profile" != "" || test "$_debug" != "" ; then
2335 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2336 _install_strip=
2337 elif test -z "$CFLAGS" ; then
2338 if test "$cc_vendor" = "intel" ; then
2339 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2340 elif test "$cc_vendor" != "gnu" ; then
2341 CFLAGS="-O2 $_march $_mcpu $_pipe"
2342 else
2343 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2345 else
2346 _warn_CFLAGS=yes
2348 if test -n "$LDFLAGS" ; then
2349 _ld_extra="$_ld_extra $LDFLAGS"
2350 _warn_CFLAGS=yes
2351 elif test "$cc_vendor" = "intel" ; then
2352 _ld_extra="$_ld_extra -i-static"
2354 if test -n "$CPPFLAGS" ; then
2355 _inc_extra="$_inc_extra $CPPFLAGS"
2356 _warn_CFLAGS=yes
2361 if x86_32 ; then
2362 # Checking assembler (_as) compatibility...
2363 # Added workaround for older as that reads from stdin by default - atmos
2364 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
2365 echocheck "assembler ($_as $as_version)"
2367 _pref_as_version='2.9.1'
2368 echo 'nop' > $TMPS
2369 if test "$_mmx" = yes ; then
2370 echo 'emms' >> $TMPS
2372 if test "$_3dnow" = yes ; then
2373 _pref_as_version='2.10.1'
2374 echo 'femms' >> $TMPS
2376 if test "$_3dnowext" = yes ; then
2377 _pref_as_version='2.10.1'
2378 echo 'pswapd %mm0, %mm0' >> $TMPS
2380 if test "$_mmxext" = yes ; then
2381 _pref_as_version='2.10.1'
2382 echo 'movntq %mm0, (%eax)' >> $TMPS
2384 if test "$_sse" = yes ; then
2385 _pref_as_version='2.10.1'
2386 echo 'xorps %xmm0, %xmm0' >> $TMPS
2388 #if test "$_sse2" = yes ; then
2389 # _pref_as_version='2.11'
2390 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2392 if test "$_cmov" = yes ; then
2393 _pref_as_version='2.10.1'
2394 echo 'cmovb %eax, %ebx' >> $TMPS
2396 if test "$_ssse3" = yes ; then
2397 _pref_as_version='2.16.92'
2398 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2400 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2402 if test "$as_verc_fail" != yes ; then
2403 echores "ok"
2404 else
2405 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2406 echores "failed"
2407 die "obsolete binutils version"
2410 fi #if x86_32
2412 echocheck ".align is a power of two"
2413 if test "$_asmalign_pot" = auto ; then
2414 _asmalign_pot=no
2415 cat > $TMPC << EOF
2416 int main(void) { asm (".align 3"); return 0; }
2418 cc_check && _asmalign_pot=yes
2420 if test "$_asmalign_pot" = "yes" ; then
2421 _def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2422 else
2423 _def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2425 echores $_asmalign_pot
2428 #FIXME: This should happen before the check for CFLAGS..
2429 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2431 # check if AltiVec is supported by the compiler, and how to enable it
2432 echocheck "GCC AltiVec flags"
2433 cat > $TMPC << EOF
2434 int main(void) { return 0; }
2436 if $(cc_check -maltivec -mabi=altivec) ; then
2437 _altivec_gcc_flags="-maltivec -mabi=altivec"
2438 # check if <altivec.h> should be included
2439 _def_altivec_h='#undef HAVE_ALTIVEC_H'
2440 cat > $TMPC << EOF
2441 #include <altivec.h>
2442 int main(void) { return 0; }
2444 if $(cc_check $_altivec_gcc_flags) ; then
2445 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2446 inc_altivec_h='#include <altivec.h>'
2447 else
2448 cat > $TMPC << EOF
2449 int main(void) { return 0; }
2451 if $(cc_check -faltivec) ; then
2452 _altivec_gcc_flags="-faltivec"
2453 else
2454 _altivec=no
2455 _altivec_gcc_flags="none, AltiVec disabled"
2459 echores "$_altivec_gcc_flags"
2461 # check if the compiler supports braces for vector declarations
2462 cat > $TMPC << EOF
2463 $inc_altivec_h
2464 #define AVV(x...) {x}
2465 int main(void) { (vector int) AVV(1); return 0; }
2467 cc_check $_altivec_gcc_flags &&
2468 _def_altivec_vector_braces='#define HAVE_ALTIVEC_VECTOR_BRACES 1'
2470 # Disable runtime cpudetection if we cannot generate AltiVec code or
2471 # AltiVec is disabled by the user.
2472 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2473 && _runtime_cpudetection=no
2475 # Show that we are optimizing for AltiVec (if enabled and supported).
2476 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2477 && _optimizing="$_optimizing altivec"
2479 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2480 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2483 if arm ; then
2484 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2485 if test $_armv5te = "auto" ; then
2486 cat > $TMPC << EOF
2487 int main(void) { __asm__ __volatile__ ("qadd r0, r0, r0"); return 0; }
2489 _armv5te=no
2490 cc_check && _armv5te=yes
2492 echores "$_armv5te"
2494 echocheck "ARMv6 (SIMD instructions)"
2495 if test $_armv6 = "auto" ; then
2496 cat > $TMPC << EOF
2497 int main(void) { __asm__ __volatile__ ("sadd16 r0, r0, r0"); return 0; }
2499 _armv6=no
2500 cc_check && _armv6=yes
2502 echores "$_armv6"
2504 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2505 if test $_iwmmxt = "auto" ; then
2506 cat > $TMPC << EOF
2507 int main(void) { __asm__ __volatile__ ("wunpckelub wr6, wr4"); return 0; }
2509 _iwmmxt=no
2510 cc_check && _iwmmxt=yes
2512 echores "$_iwmmxt"
2515 _cpuexts_all='ALTIVEC MMX MMX2 3DNOW 3DNOWEX SSE SSE2 SSSE3 FAST_CMOV CMOV ARMV5TE ARMV6 IWMMXT MLIB MMI SH4 VIS MVI'
2516 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2517 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2518 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2519 test "$_3dnow" = yes && _cpuexts="3DNOW $_cpuexts"
2520 test "$_3dnowext" = yes && _cpuexts="3DNOWEX $_cpuexts"
2521 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2522 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2523 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2524 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2525 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2526 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2527 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2528 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2529 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2530 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2532 # Checking kernel version...
2533 if x86_32 && linux ; then
2534 _k_verc_problem=no
2535 kernel_version=`uname -r 2>&1`
2536 echocheck "$system_name kernel version"
2537 case "$kernel_version" in
2538 '') kernel_version="?.??"; _k_verc_fail=yes;;
2539 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2540 _k_verc_problem=yes;;
2541 esac
2542 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2543 _k_verc_fail=yes
2545 if test "$_k_verc_fail" ; then
2546 echores "$kernel_version, fail"
2547 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2548 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2549 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2550 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2551 echo "2.2.x you must upgrade it to get SSE support!"
2552 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2553 else
2554 echores "$kernel_version, ok"
2558 ######################
2559 # MAIN TESTS GO HERE #
2560 ######################
2563 echocheck "-lposix"
2564 cat > $TMPC <<EOF
2565 int main(void) { return 0; }
2567 if cc_check -lposix ; then
2568 _ld_extra="$_ld_extra -lposix"
2569 echores "yes"
2570 else
2571 echores "no"
2574 echocheck "-lm"
2575 cat > $TMPC <<EOF
2576 int main(void) { return 0; }
2578 if cc_check -lm ; then
2579 _ld_lm="-lm"
2580 echores "yes"
2581 else
2582 _ld_lm=""
2583 echores "no"
2587 echocheck "langinfo"
2588 if test "$_langinfo" = auto ; then
2589 cat > $TMPC <<EOF
2590 #include <langinfo.h>
2591 int main(void) { nl_langinfo(CODESET); return 0; }
2593 _langinfo=no
2594 cc_check && _langinfo=yes
2596 if test "$_langinfo" = yes ; then
2597 _def_langinfo='#define USE_LANGINFO 1'
2598 else
2599 _def_langinfo='#undef USE_LANGINFO'
2601 echores "$_langinfo"
2604 echocheck "language"
2605 test -z "$_language" && _language=$LINGUAS
2606 _language=`echo $_language | tr , " "`
2607 echo $_language | grep -q all || msg_langs="$_language en"
2608 for lang in $_language ; do
2609 test "$lang" = all && lang=en
2610 if test -f "help/help_mp-${lang}.h" ; then
2611 _language=$lang
2612 break
2613 else
2614 echo ${_echo_n} "$lang not found, ${_echo_c}"
2615 _language=`echo $_language | sed "s/$lang *//"`
2617 done
2618 test -z "$_language" && _language=en
2619 _mp_help="help/help_mp-${_language}.h"
2620 for lang in $msg_langs ; do
2621 if test -f "DOCS/man/$lang/mplayer.1" ; then
2622 MAN_LANG_ALL="$lang $MAN_LANG_ALL"
2624 done
2625 MAN_LANG="$(echo $MAN_LANG_ALL | sed 's/en//')"
2626 _doc_lang=$_language
2627 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2628 echores "using $_language (man pages: $MAN_LANG_ALL)"
2631 echocheck "enable sighandler"
2632 if test "$_sighandler" = yes ; then
2633 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2634 else
2635 _def_sighandler='#undef ENABLE_SIGHANDLER'
2637 echores "$_sighandler"
2639 echocheck "runtime cpudetection"
2640 if test "$_runtime_cpudetection" = yes ; then
2641 _optimizing="Runtime CPU-Detection enabled"
2642 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2643 else
2644 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2646 echores "$_runtime_cpudetection"
2649 echocheck "restrict keyword"
2650 for restrict_keyword in restrict __restrict __restrict__ ; do
2651 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2652 if cc_check; then
2653 _def_restrict_keyword=$restrict_keyword
2654 break;
2656 done
2657 if [ -n "$_def_restrict_keyword" ]; then
2658 echores "$_def_restrict_keyword"
2659 else
2660 echores "none"
2662 # Avoid infinite recursion loop ("#define restrict restrict")
2663 if [ "$_def_restrict_keyword" != "restrict" ]; then
2664 _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2665 else
2666 _def_restrict_keyword=""
2670 echocheck "__builtin_expect"
2671 # GCC branch prediction hint
2672 cat > $TMPC << EOF
2673 int foo (int a) {
2674 a = __builtin_expect (a, 10);
2675 return a == 10 ? 0 : 1;
2677 int main(void) { return foo(10) && foo(0); }
2679 _builtin_expect=no
2680 cc_check && _builtin_expect=yes
2681 if test "$_builtin_expect" = yes ; then
2682 _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2683 else
2684 _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2686 echores "$_builtin_expect"
2689 echocheck "kstat"
2690 cat > $TMPC << EOF
2691 #include <kstat.h>
2692 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2694 _kstat=no
2695 cc_check -lkstat && _kstat=yes
2696 if test "$_kstat" = yes ; then
2697 _def_kstat="#define HAVE_LIBKSTAT 1"
2698 _ld_extra="$_ld_extra -lkstat"
2699 else
2700 _def_kstat="#undef HAVE_LIBKSTAT"
2702 echores "$_kstat"
2705 echocheck "posix4"
2706 # required for nanosleep on some systems
2707 cat > $TMPC << EOF
2708 #include <time.h>
2709 int main(void) { (void) nanosleep(0, 0); return 0; }
2711 _posix4=no
2712 cc_check -lposix4 && _posix4=yes
2713 if test "$_posix4" = yes ; then
2714 _ld_extra="$_ld_extra -lposix4"
2716 echores "$_posix4"
2718 for func in llrint lrint lrintf round roundf; do
2719 echocheck $func
2720 cat > $TMPC << EOF
2721 #include <math.h>
2722 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2724 eval _$func=no
2725 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2726 if eval test "x\$_$func" = "xyes"; then
2727 eval _def_$func="\"#define HAVE_`echo $func | tr '[a-z]' '[A-Z]'` 1\""
2728 echores yes
2729 else
2730 eval _def_$func="\"#undef HAVE_`echo $func | tr '[a-z]' '[A-Z]'`\""
2731 echores no
2733 done
2736 echocheck "mkstemp"
2737 cat > $TMPC << EOF
2738 #include <stdlib.h>
2739 int main(void) { char a; mkstemp(&a); return 0; }
2741 _mkstemp=no
2742 cc_check && _mkstemp=yes
2743 if test "$_mkstemp" = yes ; then
2744 _def_mkstemp='#define HAVE_MKSTEMP 1'
2745 else
2746 _def_mkstemp='#undef HAVE_MKSTEMP'
2748 echores "$_mkstemp"
2751 echocheck "nanosleep"
2752 # also check for nanosleep
2753 cat > $TMPC << EOF
2754 #include <time.h>
2755 int main(void) { (void) nanosleep(0, 0); return 0; }
2757 _nanosleep=no
2758 cc_check && _nanosleep=yes
2759 if test "$_nanosleep" = yes ; then
2760 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2761 else
2762 _def_nanosleep='#undef HAVE_NANOSLEEP'
2764 echores "$_nanosleep"
2767 echocheck "socklib"
2768 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2769 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2770 cat > $TMPC << EOF
2771 #include <netdb.h>
2772 #include <sys/socket.h>
2773 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2775 _socklib=no
2776 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2777 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2778 done
2779 if test $_winsock2 = auto && ! cygwin ; then
2780 _winsock2=no
2781 cat > $TMPC << EOF
2782 #include <winsock2.h>
2783 int main(void) { (void) gethostbyname(0); return 0; }
2785 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2787 test "$_ld_sock" && _res_comment="using $_ld_sock"
2788 echores "$_socklib"
2791 if test $_winsock2 = yes ; then
2792 _ld_sock="-lws2_32"
2793 _def_winsock2='#define HAVE_WINSOCK2 1'
2794 else
2795 _def_winsock2='#undef HAVE_WINSOCK2'
2799 _use_aton=no
2800 echocheck "inet_pton()"
2801 cat > $TMPC << EOF
2802 #include <sys/types.h>
2803 #include <sys/socket.h>
2804 #include <arpa/inet.h>
2805 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2807 if test "$_winsock2" = yes ; then
2808 _res_comment="using winsock2 functions instead"
2809 echores "no"
2810 elif cc_check $_ld_sock ; then
2811 # NOTE: Linux has libresolv but does not need it
2813 _res_comment="using $_ld_sock"
2814 echores "yes"
2815 elif cc_check $_ld_sock -lresolv ; then
2816 # NOTE: needed for SunOS at least
2817 _ld_sock="$_ld_sock -lresolv"
2818 _res_comment="using $_ld_sock"
2819 echores "yes"
2820 else
2821 _res_comment="trying inet_aton next"
2822 echores "no"
2824 echocheck "inet_aton()"
2825 cat > $TMPC << EOF
2826 #include <sys/types.h>
2827 #include <sys/socket.h>
2828 #include <arpa/inet.h>
2829 int main(void) { (void) inet_aton(0, 0); return 0; }
2831 _use_aton=yes
2832 if cc_check $_ld_sock ; then
2833 # NOTE: Linux has libresolv but does not need it
2835 _res_comment="using $_ld_sock"
2836 elif cc_check $_ld_sock -lresolv ; then
2837 # NOTE: needed for SunOS at least
2838 _ld_sock="$_ld_sock -lresolv"
2839 _res_comment="using $_ld_sock"
2840 else
2841 _use_aton=no
2842 _network=no
2843 _res_comment="network support disabled"
2845 echores "$_use_aton"
2848 _def_use_aton='#undef USE_ATON'
2849 if test "$_use_aton" = yes; then
2850 _def_use_aton='#define USE_ATON 1'
2853 echocheck "network"
2854 # FIXME network check
2855 if test "$_network" = yes ; then
2856 _def_network='#define MPLAYER_NETWORK 1'
2857 _ld_extra="$_ld_extra $_ld_sock"
2858 _inputmodules="network $_inputmodules"
2859 else
2860 _noinputmodules="network $_noinputmodules"
2861 _def_network='#undef MPLAYER_NETWORK'
2862 _ftp=no
2864 echores "$_network"
2866 echocheck "inttypes.h (required)"
2867 cat > $TMPC << EOF
2868 #include <inttypes.h>
2869 int main(void) { return 0; }
2871 _inttypes=no
2872 cc_check && _inttypes=yes
2873 echores "$_inttypes"
2875 if test "$_inttypes" = no ; then
2876 echocheck "bitypes.h (inttypes.h predecessor)"
2877 cat > $TMPC << EOF
2878 #include <sys/bitypes.h>
2879 int main(void) { return 0; }
2881 cc_check && _inttypes=yes
2882 if test "$_inttypes" = yes ; then
2883 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."
2884 else
2885 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
2890 echocheck "int_fastXY_t in inttypes.h"
2891 cat > $TMPC << EOF
2892 #include <inttypes.h>
2893 int main(void) {
2894 volatile int_fast16_t v= 0;
2895 return v; }
2897 _fast_inttypes=no
2898 cc_check && _fast_inttypes=yes
2899 if test "$_fast_inttypes" = no ; then
2900 _def_fast_inttypes='
2901 typedef signed char int_fast8_t;
2902 typedef signed int int_fast16_t;
2903 typedef signed int int_fast32_t;
2904 typedef signed long long int_fast64_t;
2905 typedef unsigned char uint_fast8_t;
2906 typedef unsigned int uint_fast16_t;
2907 typedef unsigned int uint_fast32_t;
2908 typedef unsigned long long uint_fast64_t;'
2910 echores "$_fast_inttypes"
2913 echocheck "word size"
2914 _mp_wordsize="#undef MP_WORDSIZE"
2915 cat > $TMPC << EOF
2916 #include <stdio.h>
2917 #include <sys/types.h>
2918 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2920 cc_check && _wordsize=`$TMPEXE` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2921 echores "$_wordsize"
2924 echocheck "malloc.h"
2925 cat > $TMPC << EOF
2926 #include <malloc.h>
2927 int main(void) { (void) malloc(0); return 0; }
2929 _malloc=no
2930 cc_check && _malloc=yes
2931 if test "$_malloc" = yes ; then
2932 _def_malloc='#define HAVE_MALLOC_H 1'
2933 else
2934 _def_malloc='#undef HAVE_MALLOC_H'
2936 # malloc.h emits a warning in FreeBSD and OpenBSD
2937 freebsd || openbsd || dragonfly && _def_malloc='#undef HAVE_MALLOC_H'
2938 echores "$_malloc"
2941 echocheck "memalign()"
2942 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2943 cat > $TMPC << EOF
2944 #include <malloc.h>
2945 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
2947 _memalign=no
2948 cc_check && _memalign=yes
2949 if test "$_memalign" = yes ; then
2950 _def_memalign='#define HAVE_MEMALIGN 1'
2951 else
2952 _def_memalign='#undef HAVE_MEMALIGN'
2953 _def_map_memalign='#define memalign(a,b) malloc(b)'
2954 darwin || _def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
2956 echores "$_memalign"
2959 echocheck "alloca.h"
2960 cat > $TMPC << EOF
2961 #include <alloca.h>
2962 int main(void) { (void) alloca(0); return 0; }
2964 _alloca=no
2965 cc_check && _alloca=yes
2966 if cc_check ; then
2967 _def_alloca='#define HAVE_ALLOCA_H 1'
2968 else
2969 _def_alloca='#undef HAVE_ALLOCA_H'
2971 echores "$_alloca"
2974 echocheck "byteswap.h"
2975 cat > $TMPC << EOF
2976 #include <byteswap.h>
2977 int main(void) { bswap_16(0); return 0; }
2979 _byteswap_h=no
2980 cc_check && _byteswap_h=yes
2981 if cc_check ; then
2982 _def_byteswap_h='#define HAVE_BYTESWAP_H 1'
2983 else
2984 _def_byteswap_h='#undef HAVE_BYTESWAP_H'
2986 echores "$_byteswap_h"
2989 echocheck "mman.h"
2990 cat > $TMPC << EOF
2991 #include <sys/types.h>
2992 #include <sys/mman.h>
2993 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2995 _mman=no
2996 cc_check && _mman=yes
2997 if test "$_mman" = yes ; then
2998 _def_mman='#define HAVE_SYS_MMAN_H 1'
2999 else
3000 _def_mman='#undef HAVE_SYS_MMAN_H'
3001 os2 && _need_mmap=yes
3003 echores "$_mman"
3005 cat > $TMPC << EOF
3006 #include <sys/types.h>
3007 #include <sys/mman.h>
3008 int main(void) { void *p = MAP_FAILED; return 0; }
3010 _mman_has_map_failed=no
3011 cc_check && _mman_has_map_failed=yes
3012 if test "$_mman_has_map_failed" = yes ; then
3013 _def_mman_has_map_failed=''
3014 else
3015 _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3018 echocheck "dynamic loader"
3019 cat > $TMPC << EOF
3020 #include <stddef.h>
3021 #include <dlfcn.h>
3022 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3024 _dl=no
3025 for _ld_tmp in "" "-ldl" ; do
3026 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3027 done
3028 if test "$_dl" = yes ; then
3029 _def_dl='#define HAVE_LIBDL 1'
3030 else
3031 _def_dl='#undef HAVE_LIBDL'
3033 echores "$_dl"
3036 echocheck "dynamic a/v plugins support"
3037 if test "$_dl" = no ; then
3038 _dynamic_plugins=no
3040 if test "$_dynamic_plugins" = yes ; then
3041 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
3042 else
3043 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
3045 echores "$_dynamic_plugins"
3048 _def_threads='#undef HAVE_THREADS'
3050 echocheck "pthread"
3051 if test "$_pthreads" = auto ; then
3052 cat > $TMPC << EOF
3053 #include <pthread.h>
3054 void* func(void *arg) { return arg; }
3055 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
3057 _pthreads=no
3058 if ! hpux ; then
3059 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3060 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3061 cc_check $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3062 done
3065 if test "$_pthreads" = yes ; then
3066 _res_comment="using $_ld_pthread"
3067 _def_pthreads='#define HAVE_PTHREADS 1'
3068 _def_threads='#define HAVE_THREADS 1'
3069 else
3070 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3071 _def_pthreads='#undef HAVE_PTHREADS'
3072 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3073 mingw32 || _win32dll=no
3075 echores "$_pthreads"
3077 echocheck "w32threads"
3078 if test "$_pthreads" = yes ; then
3079 _res_comment="using pthread instead"
3080 _w32threads=no
3082 if test "$_w32threads" = auto ; then
3083 _w32threads=no
3084 mingw32 && _w32threads=yes
3086 test "$_w32threads" = yes && _def_threads='#define HAVE_THREADS 1'
3087 echores "$_w32threads"
3089 echocheck "rpath"
3090 netbsd &&_rpath=yes
3091 if test "$_rpath" = yes ; then
3092 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
3093 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
3094 done
3095 _ld_extra=$tmp
3097 echores "$_rpath"
3099 echocheck "iconv"
3100 if test "$_iconv" = auto ; then
3101 cat > $TMPC << EOF
3102 #include <stdio.h>
3103 #include <unistd.h>
3104 #include <iconv.h>
3105 #define INBUFSIZE 1024
3106 #define OUTBUFSIZE 4096
3108 char inbuffer[INBUFSIZE];
3109 char outbuffer[OUTBUFSIZE];
3111 int main(void) {
3112 size_t numread;
3113 iconv_t icdsc;
3114 char *tocode="UTF-8";
3115 char *fromcode="cp1250";
3116 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
3117 while ((numread = read (0, inbuffer, INBUFSIZE))) {
3118 char *iptr=inbuffer;
3119 char *optr=outbuffer;
3120 size_t inleft=numread;
3121 size_t outleft=OUTBUFSIZE;
3122 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3123 != (size_t)(-1)) {
3124 write (1, outbuffer, OUTBUFSIZE - outleft);
3127 if (iconv_close(icdsc) == -1)
3130 return 0;
3133 _iconv=no
3134 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3135 cc_check $_ld_lm $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && \
3136 _iconv=yes && break
3137 done
3139 if test "$_iconv" = yes ; then
3140 _def_iconv='#define USE_ICONV 1'
3141 else
3142 _def_iconv='#undef USE_ICONV'
3144 echores "$_iconv"
3147 echocheck "soundcard.h"
3148 _soundcard_h=no
3149 _def_soundcard='#undef HAVE_SOUNDCARD_H'
3150 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
3151 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3152 cat > $TMPC << EOF
3153 #include <$_soundcard_header>
3154 int main(void) { return 0; }
3156 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3157 done
3159 if test "$_soundcard_h" = yes ; then
3160 if test $_soundcard_header = "sys/soundcard.h"; then
3161 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
3162 else
3163 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
3166 echores "$_soundcard_h"
3169 echocheck "sys/dvdio.h"
3170 cat > $TMPC << EOF
3171 #include <unistd.h>
3172 #include <sys/dvdio.h>
3173 int main(void) { return 0; }
3175 _dvdio=no
3176 cc_check && _dvdio=yes
3177 if test "$_dvdio" = yes ; then
3178 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3179 else
3180 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3182 echores "$_dvdio"
3185 echocheck "sys/cdio.h"
3186 cat > $TMPC << EOF
3187 #include <unistd.h>
3188 #include <sys/cdio.h>
3189 int main(void) { return 0; }
3191 _cdio=no
3192 cc_check && _cdio=yes
3193 if test "$_cdio" = yes ; then
3194 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3195 else
3196 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3198 echores "$_cdio"
3201 echocheck "linux/cdrom.h"
3202 cat > $TMPC << EOF
3203 #include <sys/types.h>
3204 #include <linux/cdrom.h>
3205 int main(void) { return 0; }
3207 _cdrom=no
3208 cc_check && _cdrom=yes
3209 if test "$_cdrom" = yes ; then
3210 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3211 else
3212 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3214 echores "$_cdrom"
3217 echocheck "dvd.h"
3218 cat > $TMPC << EOF
3219 #include <dvd.h>
3220 int main(void) { return 0; }
3222 _dvd=no
3223 cc_check && _dvd=yes
3224 if test "$_dvd" = yes ; then
3225 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3226 else
3227 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3229 echores "$_dvd"
3232 if bsdos; then
3233 echocheck "BSDI dvd.h"
3234 cat > $TMPC << EOF
3235 #include <dvd.h>
3236 int main(void) { return 0; }
3238 _bsdi_dvd=no
3239 cc_check && _bsdi_dvd=yes
3240 if test "$_bsdi_dvd" = yes ; then
3241 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3242 else
3243 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3245 echores "$_bsdi_dvd"
3246 fi #if bsdos
3249 if hpux; then
3250 # also used by AIX, but AIX does not support VCD and/or libdvdread
3251 echocheck "HP-UX SCSI header"
3252 cat > $TMPC << EOF
3253 #include <sys/scsi.h>
3254 int main(void) { return 0; }
3256 _hpux_scsi_h=no
3257 cc_check && _hpux_scsi_h=yes
3258 if test "$_hpux_scsi_h" = yes ; then
3259 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3260 else
3261 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3263 echores "$_hpux_scsi_h"
3264 fi #if hpux
3267 if sunos; then
3268 echocheck "userspace SCSI headers (Solaris)"
3269 cat > $TMPC << EOF
3270 #include <unistd.h>
3271 #include <stropts.h>
3272 #include <sys/scsi/scsi_types.h>
3273 #include <sys/scsi/impl/uscsi.h>
3274 int main(void) { return 0; }
3276 _sol_scsi_h=no
3277 cc_check && _sol_scsi_h=yes
3278 if test "$_sol_scsi_h" = yes ; then
3279 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
3280 else
3281 _def_sol_scsi_h='#undef SOLARIS_USCSI'
3283 echores "$_sol_scsi_h"
3284 fi #if sunos
3287 echocheck "termcap"
3288 if test "$_termcap" = auto ; then
3289 cat > $TMPC <<EOF
3290 #include <stddef.h>
3291 #include <term.h>
3292 int main(void) { tgetent(NULL, NULL); return 0; }
3294 _termcap=no
3295 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3296 cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
3297 && _termcap=yes && break
3298 done
3300 if test "$_termcap" = yes ; then
3301 _def_termcap='#define USE_TERMCAP 1'
3302 _res_comment="using $_ld_tmp"
3303 else
3304 _def_termcap='#undef USE_TERMCAP'
3306 echores "$_termcap"
3309 echocheck "termios"
3310 _def_termios='#undef HAVE_TERMIOS'
3311 _def_termios_h='#undef HAVE_TERMIOS_H'
3312 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3313 if test "$_termios" = auto ; then
3314 _termios=no
3315 for _termios_header in "sys/termios.h" "termios.h"; do
3316 cat > $TMPC <<EOF
3317 #include <$_termios_header>
3318 int main(void) { return 0; }
3320 cc_check && _termios=yes && _res_comment="$_termios_header" && break
3321 done
3324 if test "$_termios" = yes ; then
3325 _def_termios='#define HAVE_TERMIOS 1'
3326 if test "$_termios_header" = "termios.h" ; then
3327 _def_termios_h='#define HAVE_TERMIOS_H 1'
3328 else
3329 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3332 echores "$_termios"
3335 echocheck "shm"
3336 if test "$_shm" = auto ; then
3337 cat > $TMPC << EOF
3338 #include <sys/types.h>
3339 #include <sys/shm.h>
3340 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3342 _shm=no
3343 cc_check && _shm=yes
3345 if test "$_shm" = yes ; then
3346 _def_shm='#define HAVE_SHM 1'
3347 else
3348 _def_shm='#undef HAVE_SHM'
3350 echores "$_shm"
3353 echocheck "strsep()"
3354 cat > $TMPC << EOF
3355 #include <string.h>
3356 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3358 _strsep=no
3359 cc_check && _strsep=yes
3360 if test "$_strsep" = yes ; then
3361 _def_strsep='#define HAVE_STRSEP 1'
3362 _need_strsep=no
3363 else
3364 _def_strsep='#undef HAVE_STRSEP'
3365 _need_strsep=yes
3367 echores "$_strsep"
3370 echocheck "vsscanf()"
3371 cat > $TMPC << EOF
3372 #include <stdarg.h>
3373 int main(void) { vsscanf(0, 0, 0); return 0; }
3375 _vsscanf=no
3376 cc_check && _vsscanf=yes
3377 if test "$_vsscanf" = yes ; then
3378 _def_vsscanf='#define HAVE_VSSCANF 1'
3379 _need_vsscanf=no
3380 else
3381 _def_vsscanf='#undef HAVE_VSSCANF'
3382 _need_vsscanf=yes
3384 echores "$_vsscanf"
3387 echocheck "swab()"
3388 cat > $TMPC << EOF
3389 #include <unistd.h>
3390 int main(void) { swab(0, 0, 0); return 0; }
3392 _swab=no
3393 cc_check && _swab=yes
3394 if test "$_swab" = yes ; then
3395 _def_swab='#define HAVE_SWAB 1'
3396 _need_swab=no
3397 else
3398 _def_swab='#undef HAVE_SWAB'
3399 _need_swab=yes
3401 echores "$_swab"
3403 echocheck "POSIX select()"
3404 cat > $TMPC << EOF
3405 #include <stdio.h>
3406 #include <stdlib.h>
3407 #include <sys/types.h>
3408 #include <string.h>
3409 #include <sys/time.h>
3410 #include <unistd.h>
3411 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3413 _posix_select=no
3414 _def_posix_select='#undef HAVE_POSIX_SELECT'
3415 #select() of kLIBC (OS/2) supports socket only
3416 ! os2 && cc_check && _posix_select=yes \
3417 && _def_posix_select='#define HAVE_POSIX_SELECT 1'
3418 echores "$_posix_select"
3421 echocheck "gettimeofday()"
3422 cat > $TMPC << EOF
3423 #include <stdio.h>
3424 #include <sys/time.h>
3425 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3427 _gettimeofday=no
3428 cc_check && _gettimeofday=yes
3429 if test "$_gettimeofday" = yes ; then
3430 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3431 _need_gettimeofday=no
3432 else
3433 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3434 _need_gettimeofday=yes
3436 echores "$_gettimeofday"
3439 echocheck "glob()"
3440 cat > $TMPC << EOF
3441 #include <stdio.h>
3442 #include <glob.h>
3443 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3445 _glob=no
3446 cc_check && _glob=yes
3447 if test "$_glob" = yes ; then
3448 _def_glob='#define HAVE_GLOB 1'
3449 _need_glob=no
3450 else
3451 _def_glob='#undef HAVE_GLOB'
3452 _need_glob=yes
3454 echores "$_glob"
3457 echocheck "setenv()"
3458 cat > $TMPC << EOF
3459 #include <stdlib.h>
3460 int main(void) { setenv("","",0); return 0; }
3462 _setenv=no
3463 cc_check && _setenv=yes
3464 if test "$_setenv" = yes ; then
3465 _def_setenv='#define HAVE_SETENV 1'
3466 _need_setenv=no
3467 else
3468 _def_setenv='#undef HAVE_SETENV'
3469 _need_setenv=yes
3471 echores "$_setenv"
3474 if sunos; then
3475 echocheck "sysi86()"
3476 cat > $TMPC << EOF
3477 #include <sys/sysi86.h>
3478 int main(void) { sysi86(0); return 0; }
3480 _sysi86=no
3481 cc_check && _sysi86=yes
3482 if test "$_sysi86" = yes ; then
3483 _def_sysi86='#define HAVE_SYSI86 1'
3484 cat > $TMPC << EOF
3485 #include <sys/sysi86.h>
3486 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3488 cc_check && _def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3489 else
3490 _def_sysi86='#undef HAVE_SYSI86'
3492 echores "$_sysi86"
3493 fi #if sunos
3496 echocheck "sys/sysinfo.h"
3497 cat > $TMPC << EOF
3498 #include <sys/sysinfo.h>
3499 int main(void) {
3500 struct sysinfo s_info;
3501 sysinfo(&s_info);
3502 return 0;
3505 _sys_sysinfo=no
3506 cc_check && _sys_sysinfo=yes
3507 if test "$_sys_sysinfo" = yes ; then
3508 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3509 else
3510 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3512 echores "$_sys_sysinfo"
3515 if darwin; then
3517 echocheck "Mac OS X APIs"
3518 if test "$_macosx" = auto ; then
3519 productName=`/usr/bin/sw_vers -productName`
3520 if test "$productName" = "Mac OS X" ||
3521 test "$productName" = "Mac OS X Server" ; then
3522 _macosx=yes
3523 else
3524 _macosx=no
3525 _noaomodules="macosx $_noaomodules"
3526 _novomodules="quartz $_novomodules"
3529 if test "$_macosx" = yes ; then
3530 cat > $TMPC <<EOF
3531 #include <Carbon/Carbon.h>
3532 #include <QuickTime/QuickTime.h>
3533 #include <CoreAudio/CoreAudio.h>
3534 int main(void) {
3535 EnterMovies();
3536 ExitMovies();
3537 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3538 return 0;
3541 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3542 _ld_extra="$_ld_extra -framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3543 _coreaudio=yes
3544 _def_coreaudio='#define HAVE_COREAUDIO 1'
3545 _aosrc="$_aosrc ao_macosx.c"
3546 _aomodules="macosx $_aomodules"
3547 _def_quartz='#define HAVE_QUARTZ 1'
3548 _vosrc="$_vosrc vo_quartz.c"
3549 _vomodules="quartz $_vomodules"
3550 _def_quicktime='#define HAVE_QUICKTIME 1'
3551 else
3552 _macosx=no
3553 _coreaudio=no
3554 _def_coreaudio='#undef HAVE_COREAUDIO'
3555 _noaomodules="macosx $_noaomodules"
3556 _def_quartz='#undef HAVE_QUARTZ'
3557 _novomodules="quartz $_novomodules"
3558 _def_quicktime='#undef HAVE_QUICKTIME'
3560 cat > $TMPC <<EOF
3561 #include <Carbon/Carbon.h>
3562 #include <QuartzCore/CoreVideo.h>
3563 int main(void) { return 0; }
3565 if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3566 _vosrc="$_vosrc vo_macosx.m"
3567 _vomodules="macosx $_vomodules"
3568 _ld_extra="$_ld_extra -framework Cocoa -framework QuartzCore -framework OpenGL"
3569 _def_corevideo='#define HAVE_COREVIDEO 1'
3570 _corevideo=yes
3571 else
3572 _novomodules="macosx $_novomodules"
3573 _def_corevideo='#undef HAVE_COREVIDEO'
3574 _corevideo=no
3577 echores "$_macosx"
3579 echocheck "Mac OS X Finder Support"
3580 if test "$_macosx_finder_support" = auto ; then
3581 _macosx_finder_support=$_macosx
3583 if test "$_macosx_finder_support" = yes; then
3584 _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3585 _macosx_finder_support=yes
3586 else
3587 _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3588 _macosx_finder_support=no
3590 echores "$_macosx_finder_support"
3592 echocheck "Mac OS X Bundle file locations"
3593 if test "$_macosx_bundle" = auto ; then
3594 _macosx_bundle=$_macosx_finder_support
3596 if test "$_macosx_bundle" = yes; then
3597 _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3598 else
3599 _def_macosx_bundle='#undef MACOSX_BUNDLE'
3600 _macosx_bundle=no
3602 echores "$_macosx_bundle"
3604 echocheck "Apple Remote"
3605 if test "$_apple_remote" = auto ; then
3606 _apple_remote=no
3607 cat > $TMPC <<EOF
3608 #include <stdio.h>
3609 #include <IOKit/IOCFPlugIn.h>
3610 int main(void) {
3611 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3612 CFMutableDictionaryRef hidMatchDictionary;
3613 IOReturn ioReturnValue;
3615 // Set up a matching dictionary to search the I/O Registry by class.
3616 // name for all HID class devices
3617 hidMatchDictionary = IOServiceMatching("AppleIRController");
3619 // Now search I/O Registry for matching devices.
3620 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3621 hidMatchDictionary, &hidObjectIterator);
3623 // If search is unsuccessful, return nonzero.
3624 if (ioReturnValue != kIOReturnSuccess ||
3625 !IOIteratorIsValid(hidObjectIterator)) {
3626 return 1;
3628 return 0;
3631 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3633 if test "$_apple_remote" = yes ; then
3634 _def_apple_remote='#define HAVE_APPLE_REMOTE 1'
3635 _ld_extra="$_ld_extra -framework IOKit"
3636 else
3637 _def_apple_remote='#undef HAVE_APPLE_REMOTE'
3639 echores "$_apple_remote"
3641 fi #if darwin
3643 if linux; then
3645 echocheck "Apple IR"
3646 if test "$_apple_ir" = auto ; then
3647 _apple_ir=no
3648 cat > $TMPC <<EOF
3649 #include <linux/types.h>
3650 #include <linux/input.h>
3651 int main(void) {
3652 struct input_event ev;
3653 struct input_id id;
3654 return 0;
3657 cc_check && tmp_run && _apple_ir=yes
3659 if test "$_apple_ir" = yes ; then
3660 _def_apple_ir='#define HAVE_APPLE_IR 1'
3661 else
3662 _def_apple_ir='#undef HAVE_APPLE_IR'
3664 echores "$_apple_ir"
3665 fi #if linux
3667 echocheck "pkg-config"
3668 _pkg_config=pkg-config
3669 if `$_pkg_config --version > /dev/null 2>&1`; then
3670 if test "$_ld_static"; then
3671 _pkg_config="$_pkg_config --static"
3673 echores "yes"
3674 else
3675 _pkg_config=false
3676 echores "no"
3680 echocheck "Samba support (libsmbclient)"
3681 if test "$_smbsupport" = yes; then
3682 _ld_extra="$_ld_extra -lsmbclient"
3684 if test "$_smbsupport" = auto; then
3685 _smbsupport=no
3686 cat > $TMPC << EOF
3687 #include <libsmbclient.h>
3688 int main(void) { smbc_opendir("smb://"); return 0; }
3690 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3691 cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && \
3692 _smbsupport=yes && break
3693 done
3696 if test "$_smbsupport" = yes; then
3697 _def_smbsupport="#define LIBSMBCLIENT"
3698 _inputmodules="smb $_inputmodules"
3699 else
3700 _def_smbsupport="#undef LIBSMBCLIENT"
3701 _noinputmodules="smb $_noinputmodules"
3703 echores "$_smbsupport"
3706 #########
3707 # VIDEO #
3708 #########
3711 echocheck "tdfxfb"
3712 if test "$_tdfxfb" = yes ; then
3713 _def_tdfxfb='#define HAVE_TDFXFB 1'
3714 _vosrc="$_vosrc vo_tdfxfb.c"
3715 _vomodules="tdfxfb $_vomodules"
3716 else
3717 _def_tdfxfb='#undef HAVE_TDFXFB'
3718 _novomodules="tdfxfb $_novomodules"
3720 echores "$_tdfxfb"
3722 echocheck "s3fb"
3723 if test "$_s3fb" = yes ; then
3724 _def_s3fb='#define HAVE_S3FB 1'
3725 _vosrc="$_vosrc vo_s3fb.c"
3726 _vomodules="s3fb $_vomodules"
3727 else
3728 _def_s3fb='#undef HAVE_S3FB'
3729 _novomodules="s3fb $_novomodules"
3731 echores "$_s3fb"
3733 echocheck "tdfxvid"
3734 if test "$_tdfxvid" = yes ; then
3735 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3736 _vosrc="$_vosrc vo_tdfx_vid.c"
3737 _vomodules="tdfx_vid $_vomodules"
3738 else
3739 _def_tdfxvid='#undef HAVE_TDFX_VID'
3740 _novomodules="tdfx_vid $_novomodules"
3742 echores "$_tdfxvid"
3744 echocheck "xvr100"
3745 if test "$_xvr100" = auto ; then
3746 cat > $TMPC << EOF
3747 #include <unistd.h>
3748 #include <sys/fbio.h>
3749 #include <sys/visual_io.h>
3750 int main(void) {
3751 struct vis_identifier ident;
3752 struct fbgattr attr;
3753 ioctl(0, VIS_GETIDENTIFIER, &ident);
3754 ioctl(0, FBIOGATTR, &attr);
3755 return 0;
3758 _xvr100=no
3759 cc_check && _xvr100=yes
3761 if test "$_xvr100" = yes ; then
3762 _def_xvr100='#define HAVE_XVR100 1'
3763 _vosrc="$_vosrc vo_xvr100.c"
3764 _vomodules="xvr100 $_vomodules"
3765 else
3766 _def_tdfxvid='#undef HAVE_XVR100'
3767 _novomodules="xvr100 $_novomodules"
3769 echores "$_xvr100"
3771 echocheck "tga"
3772 if test "$_tga" = yes ; then
3773 _def_tga='#define HAVE_TGA 1'
3774 _vosrc="$_vosrc vo_tga.c"
3775 _vomodules="tga $_vomodules"
3776 else
3777 _def_tga='#undef HAVE_TGA'
3778 _novomodules="tga $_novomodules"
3780 echores "$_tga"
3783 echocheck "md5sum support"
3784 if test "$_md5sum" = yes; then
3785 _def_md5sum="#define HAVE_MD5SUM"
3786 _vosrc="$_vosrc vo_md5sum.c"
3787 _vomodules="md5sum $_vomodules"
3788 else
3789 _def_md5sum="#undef HAVE_MD5SUM"
3790 _novomodules="md5sum $_novomodules"
3792 echores "$_md5sum"
3795 echocheck "yuv4mpeg support"
3796 if test "$_yuv4mpeg" = yes; then
3797 _def_yuv4mpeg="#define HAVE_YUV4MPEG"
3798 _vosrc="$_vosrc vo_yuv4mpeg.c"
3799 _vomodules="yuv4mpeg $_vomodules"
3800 else
3801 _def_yuv4mpeg="#undef HAVE_YUV4MPEG"
3802 _novomodules="yuv4mpeg $_novomodules"
3804 echores "$_yuv4mpeg"
3807 echocheck "bl"
3808 if test "$_bl" = yes ; then
3809 _def_bl='#define HAVE_BL 1'
3810 _vosrc="$_vosrc vo_bl.c"
3811 _vomodules="bl $_vomodules"
3812 else
3813 _def_bl='#undef HAVE_BL'
3814 _novomodules="bl $_novomodules"
3816 echores "$_bl"
3819 echocheck "DirectFB"
3820 if test "$_directfb" = auto ; then
3821 _directfb=no
3822 cat > $TMPC <<EOF
3823 #include <directfb.h>
3824 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
3826 for _inc_tmp in "" -I/usr/local/include/directfb \
3827 -I/usr/include/directfb -I/usr/local/include; do
3828 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
3829 _inc_extra="$_inc_extra $_inc_tmp" && break
3830 done
3833 dfb_version() {
3834 expr $1 \* 65536 + $2 \* 256 + $3
3837 if test "$_directfb" = yes; then
3838 cat > $TMPC << EOF
3839 #include <directfb_version.h>
3841 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
3844 if $_cc -E $TMPC $_inc_extra > "$TMPEXE"; then
3845 _directfb_version=`sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()'`
3846 _dfb_major=`echo $_directfb_version | cut -d . -f 1`
3847 _dfb_minor=`echo $_directfb_version | cut -d . -f 2`
3848 _dfb_micro=`echo $_directfb_version | cut -d . -f 3`
3849 _dfb_version=`dfb_version $_dfb_major $_dfb_minor $_dfb_micro`
3850 if test "$_dfb_version" -ge `dfb_version 0 9 13`; then
3851 _def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
3852 _res_comment="$_directfb_version"
3853 test "$_dfb_version" -ge `dfb_version 0 9 15` && _dfbmga=yes
3854 else
3855 _def_directfb_version='#undef DIRECTFBVERSION'
3856 _directfb=no
3857 _res_comment="version >=0.9.13 required"
3859 else
3860 _directfb=no
3861 _res_comment="failed to get version"
3864 echores "$_directfb"
3866 if test "$_directfb" = yes ; then
3867 _def_directfb='#define HAVE_DIRECTFB 1'
3868 _vosrc="$_vosrc vo_directfb2.c"
3869 _vomodules="directfb $_vomodules"
3870 _libs_mplayer="$_libs_mplayer -ldirectfb"
3871 else
3872 _def_directfb='#undef HAVE_DIRECTFB'
3873 _novomodules="directfb $_novomodules"
3875 if test "$_dfbmga" = yes; then
3876 _vosrc="$_vosrc vo_dfbmga.c"
3877 _vomodules="dfbmga $_vomodules"
3878 _def_dfbmga='#define HAVE_DFBMGA 1'
3879 else
3880 _novomodules="dfbmga $_novomodules"
3881 _def_dfbmga='#undef HAVE_DFBMGA'
3885 echocheck "X11 headers presence"
3886 _x11_headers="no"
3887 _res_comment="check if the dev(el) packages are installed"
3888 for I in `echo $_inc_extra | sed s/-I//g` /usr/include ; do
3889 if test -f "$I/X11/Xlib.h" ; then
3890 _x11_headers="yes"
3891 _res_comment=""
3892 break
3894 done
3895 if test $_cross_compile = no; then
3896 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/openwin/include ; do
3897 if test -f "$I/X11/Xlib.h" ; then
3898 _inc_extra="$_inc_extra -I$I"
3899 _x11_headers="yes"
3900 _res_comment="using $I"
3901 break
3903 done
3905 echores "$_x11_headers"
3908 echocheck "X11"
3909 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3910 cat > $TMPC <<EOF
3911 #include <X11/Xlib.h>
3912 #include <X11/Xutil.h>
3913 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3915 for I in "" -L/usr/X11R6/lib -L/usr/lib/X11R6 -L/usr/X11/lib \
3916 -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 -L/usr/lib ; do
3917 if netbsd; then
3918 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R`echo $I | sed s/^-L//`"
3919 else
3920 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3922 cc_check $_ld_tmp && _libs_mplayer="$_libs_mplayer $_ld_tmp" \
3923 && _x11=yes && break
3924 done
3926 if test "$_x11" = yes ; then
3927 _def_x11='#define HAVE_X11 1'
3928 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3929 _vomodules="x11 xover $_vomodules"
3930 else
3931 _x11=no
3932 _def_x11='#undef HAVE_X11'
3933 _novomodules="x11 $_novomodules"
3934 _res_comment="check if the dev(el) packages are installed"
3935 # disable stuff that depends on X
3936 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no
3938 echores "$_x11"
3940 echocheck "Xss screensaver extensions"
3941 if test "$_xss" = auto ; then
3942 cat > $TMPC << EOF
3943 #include <X11/Xlib.h>
3944 #include <X11/extensions/scrnsaver.h>
3945 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
3947 _xss=no
3948 cc_check -lXss && _xss=yes
3950 if test "$_xss" = yes ; then
3951 _def_xss='#define HAVE_XSS 1'
3952 _libs_mplayer="$_libs_mplayer -lXss"
3953 else
3954 _def_xss='#undef HAVE_XSS'
3956 echores "$_xss"
3958 echocheck "DPMS"
3959 _xdpms3=no
3960 _xdpms4=no
3961 if test "$_x11" = yes ; then
3962 cat > $TMPC <<EOF
3963 #include <X11/Xmd.h>
3964 #include <X11/Xlib.h>
3965 #include <X11/Xutil.h>
3966 #include <X11/Xatom.h>
3967 #include <X11/extensions/dpms.h>
3968 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
3970 cc_check -lXdpms && _xdpms3=yes
3971 cat > $TMPC <<EOF
3972 #include <X11/Xlib.h>
3973 #include <X11/extensions/dpms.h>
3974 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
3976 cc_check -lXext && _xdpms4=yes
3978 if test "$_xdpms4" = yes ; then
3979 _def_xdpms='#define HAVE_XDPMS 1'
3980 _res_comment="using Xdpms 4"
3981 echores "yes"
3982 elif test "$_xdpms3" = yes ; then
3983 _def_xdpms='#define HAVE_XDPMS 1'
3984 _libs_mplayer="$_libs_mplayer -lXdpms"
3985 _res_comment="using Xdpms 3"
3986 echores "yes"
3987 else
3988 _def_xdpms='#undef HAVE_XDPMS'
3989 echores "no"
3993 echocheck "Xv"
3994 if test "$_xv" = auto ; then
3995 cat > $TMPC <<EOF
3996 #include <X11/Xlib.h>
3997 #include <X11/extensions/Xvlib.h>
3998 int main(void) {
3999 (void) XvGetPortAttribute(0, 0, 0, 0);
4000 (void) XvQueryPortAttributes(0, 0, 0);
4001 return 0; }
4003 _xv=no
4004 cc_check -lXv && _xv=yes
4007 if test "$_xv" = yes ; then
4008 _def_xv='#define HAVE_XV 1'
4009 _libs_mplayer="$_libs_mplayer -lXv"
4010 _vosrc="$_vosrc vo_xv.c"
4011 _vomodules="xv $_vomodules"
4012 else
4013 _def_xv='#undef HAVE_XV'
4014 _novomodules="xv $_novomodules"
4016 echores "$_xv"
4019 echocheck "XvMC"
4020 if test "$_xv" = yes && test "$_xvmc" != no ; then
4021 _xvmc=no
4022 cat > $TMPC <<EOF
4023 #include <X11/Xlib.h>
4024 #include <X11/extensions/Xvlib.h>
4025 #include <X11/extensions/XvMClib.h>
4026 int main(void) {
4027 (void) XvMCQueryExtension(0,0,0);
4028 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4029 return 0; }
4031 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4032 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4033 done
4035 if test "$_xvmc" = yes ; then
4036 _def_xvmc='#define HAVE_XVMC 1'
4037 _libs_mplayer="$_libs_mplayer -lXvMC -l$_xvmclib"
4038 _vosrc="$_vosrc vo_xvmc.c"
4039 _vomodules="xvmc $_vomodules"
4040 _res_comment="using $_xvmclib"
4041 else
4042 _def_xvmc='#undef HAVE_XVMC'
4043 _novomodules="xvmc $_novomodules"
4044 _libavdecoders=`echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER// `
4046 echores "$_xvmc"
4049 echocheck "Xinerama"
4050 if test "$_xinerama" = auto ; then
4051 cat > $TMPC <<EOF
4052 #include <X11/Xlib.h>
4053 #include <X11/extensions/Xinerama.h>
4054 int main(void) { (void) XineramaIsActive(0); return 0; }
4056 _xinerama=no
4057 cc_check -lXinerama && _xinerama=yes
4060 if test "$_xinerama" = yes ; then
4061 _def_xinerama='#define HAVE_XINERAMA 1'
4062 _libs_mplayer="$_libs_mplayer -lXinerama"
4063 else
4064 _def_xinerama='#undef HAVE_XINERAMA'
4066 echores "$_xinerama"
4069 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4070 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4071 # named 'X extensions' or something similar.
4072 # This check may be useful for future mplayer versions (to change resolution)
4073 # If you run into problems, remove '-lXxf86vm'.
4074 echocheck "Xxf86vm"
4075 if test "$_vm" = auto ; then
4076 cat > $TMPC <<EOF
4077 #include <X11/Xlib.h>
4078 #include <X11/extensions/xf86vmode.h>
4079 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4081 _vm=no
4082 cc_check -lXxf86vm && _vm=yes
4084 if test "$_vm" = yes ; then
4085 _def_vm='#define HAVE_XF86VM 1'
4086 _libs_mplayer="$_libs_mplayer -lXxf86vm"
4087 else
4088 _def_vm='#undef HAVE_XF86VM'
4090 echores "$_vm"
4092 # Check for the presence of special keycodes, like audio control buttons
4093 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4094 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4095 # have these new keycodes.
4096 echocheck "XF86keysym"
4097 if test "$_xf86keysym" = auto; then
4098 _xf86keysym=no
4099 cat > $TMPC <<EOF
4100 #include <X11/Xlib.h>
4101 #include <X11/XF86keysym.h>
4102 int main(void) { return XF86XK_AudioPause; }
4104 cc_check && _xf86keysym=yes
4106 if test "$_xf86keysym" = yes ; then
4107 _def_xf86keysym='#define HAVE_XF86XK 1'
4108 else
4109 _def_xf86keysym='#undef HAVE_XF86XK'
4111 echores "$_xf86keysym"
4113 echocheck "DGA"
4114 if test "$_dga2" = auto && test "$_x11" = yes ; then
4115 cat > $TMPC << EOF
4116 #include <X11/Xlib.h>
4117 #include <X11/extensions/xf86dga.h>
4118 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4120 _dga2=no
4121 cc_check -lXxf86dga && _dga2=yes
4123 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4124 cat > $TMPC << EOF
4125 #include <X11/Xlib.h>
4126 #include <X11/extensions/xf86dga.h>
4127 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4129 _dga1=no
4130 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4133 _dga=no
4134 _def_dga='#undef HAVE_DGA'
4135 _def_dga1='#undef HAVE_DGA1'
4136 _def_dga2='#undef HAVE_DGA2'
4137 if test "$_dga1" = yes ; then
4138 _dga=yes
4139 _def_dga1='#define HAVE_DGA1 1'
4140 _res_comment="using DGA 1.0"
4141 elif test "$_dga2" = yes ; then
4142 _dga=yes
4143 _def_dga2='#define HAVE_DGA2 1'
4144 _res_comment="using DGA 2.0"
4146 if test "$_dga" = yes ; then
4147 _def_dga='#define HAVE_DGA 1'
4148 _libs_mplayer="$_libs_mplayer -lXxf86dga"
4149 _vosrc="$_vosrc vo_dga.c"
4150 _vomodules="dga $_vomodules"
4151 else
4152 _novomodules="dga $_novomodules"
4154 echores "$_dga"
4157 echocheck "3dfx"
4158 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4159 _def_3dfx='#define HAVE_3DFX 1'
4160 _vosrc="$_vosrc vo_3dfx.c"
4161 _vomodules="3dfx $_vomodules"
4162 else
4163 _def_3dfx='#undef HAVE_3DFX'
4164 _novomodules="3dfx $_novomodules"
4166 echores "$_3dfx"
4169 echocheck "OpenGL"
4170 #Note: this test is run even with --enable-gl since we autodetect linker flags
4171 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4172 cat > $TMPC << EOF
4173 #include <GL/gl.h>
4174 #ifdef GL_WIN32
4175 #include <windows.h>
4176 #include <GL/glext.h>
4177 #else
4178 #include <X11/Xlib.h>
4179 #include <GL/glx.h>
4180 #endif
4181 int main(void) {
4182 #ifdef GL_WIN32
4183 HDC dc;
4184 wglCreateContext(dc);
4185 #else
4186 glXCreateContext(NULL, NULL, NULL, True);
4187 #endif
4188 glFinish();
4189 return 0;
4192 _gl=no
4193 if cc_check -lGL $_ld_lm ; then
4194 _gl=yes
4195 _libs_mplayer="$_libs_mplayer -lGL $_ld_dl"
4196 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4197 _gl=yes
4198 _libs_mplayer="$_libs_mplayer -lGL $_ld_pthread $_ld_dl"
4199 elif cc_check -DGL_WIN32 -lopengl32 ; then
4200 _gl=yes
4201 _gl_win32=yes
4202 _libs_mplayer="$_libs_mplayer -lopengl32 -lgdi32"
4204 else
4205 _gl=no
4207 if test "$_gl" = yes ; then
4208 _def_gl='#define HAVE_GL 1'
4209 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
4210 if test "$_gl_win32" = yes ; then
4211 _def_gl_win32='#define GL_WIN32 1'
4212 _vosrc="$_vosrc w32_common.c"
4213 _res_comment="win32 version"
4215 _vomodules="opengl $_vomodules"
4216 else
4217 _def_gl='#undef HAVE_GL'
4218 _def_gl_win32='#undef GL_WIN32'
4219 _novomodules="opengl $_novomodules"
4221 echores "$_gl"
4224 echocheck "VIDIX"
4225 _def_vidix='#undef CONFIG_VIDIX'
4226 _def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4227 _vidix_drv_cyberblade=no
4228 _def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4229 _vidix_drv_ivtv=no
4230 _def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4231 _vidix_drv_ivtv=no
4232 _def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4233 _vidix_drv_mach64=no
4234 _def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4235 _vidix_drv_mga=no
4236 _def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4237 _vidix_drv_mga_crtc2=no
4238 _def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4239 _vidix_drv_nvidia=no
4240 _def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4241 _vidix_drv_pm2=no
4242 _def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4243 _vidix_drv_pm3=no
4244 _def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4245 _vidix_drv_radeon=no
4246 _def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4247 _vidix_drv_rage128=no
4248 _def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4249 _vidix_drv_s3=no
4250 _def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4251 _vidix_drv_sis=no
4252 _def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4253 _vidix_drv_unichrome=no
4254 if test "$_vidix" = auto ; then
4255 _vidix=no
4256 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4257 && _vidix=yes
4258 (ppc || alpha) && linux && _vidix=yes
4260 echores "$_vidix"
4262 if test "$_vidix" = yes ; then
4263 _def_vidix='#define CONFIG_VIDIX 1'
4264 _vosrc="$_vosrc vo_cvidix.c"
4265 _vomodules="cvidix $_vomodules"
4266 test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sis unichrome"
4267 test $_ivtv = "yes" || _vidix_drivers=`echo $_vidix_drivers | sed s/ivtv//`
4269 # some vidix drivers are meant to work on x86 only, discard them elsewhere
4270 x86 || _vidix_drivers=`echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//`
4272 for driver in $_vidix_drivers ; do
4273 uc_driver=`echo $driver | tr '[a-z]' '[A-Z]'`
4274 eval _vidix_drv_${driver}=yes
4275 eval _def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4276 done
4278 echocheck "VIDIX PCI device name database"
4279 echores "$_vidix_pcidb"
4280 if test "$_vidix_pcidb" = yes ; then
4281 _vidix_pcidb_val=1
4282 else
4283 _vidix_pcidb_val=0
4286 echocheck "VIDIX dhahelper support"
4287 test "$_dhahelper" = yes && cflag_dhahelper=-DCONFIG_DHAHELPER
4288 echores "$_dhahelper"
4290 echocheck "VIDIX svgalib_helper support"
4291 test "$_svgalib_helper" = yes && cflag_svgalib_helper=-DCONFIG_SVGAHELPER
4292 echores "$_svgalib_helper"
4294 else
4295 _novomodules="cvidix $_novomodules"
4298 if test "$_vidix" = yes && win32; then
4299 _vosrc="$_vosrc vo_winvidix.c"
4300 _vomodules="winvidix $_vomodules"
4301 _libs_mplayer="$_libs_mplayer -lgdi32"
4302 else
4303 _novomodules="winvidix $_novomodules"
4305 if test "$_vidix" = yes && test "$_x11" = yes; then
4306 _vosrc="$_vosrc vo_xvidix.c"
4307 _vomodules="xvidix $_vomodules"
4308 else
4309 _novomodules="xvidix $_novomodules"
4312 echocheck "/dev/mga_vid"
4313 if test "$_mga" = auto ; then
4314 _mga=no
4315 test -c /dev/mga_vid && _mga=yes
4317 if test "$_mga" = yes ; then
4318 _def_mga='#define HAVE_MGA 1'
4319 _vosrc="$_vosrc vo_mga.c"
4320 _vomodules="mga $_vomodules"
4321 else
4322 _def_mga='#undef HAVE_MGA'
4323 _novomodules="mga $_novomodules"
4325 echores "$_mga"
4328 echocheck "xmga"
4329 if test "$_xmga" = auto ; then
4330 _xmga=no
4331 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4333 if test "$_xmga" = yes ; then
4334 _def_xmga='#define HAVE_XMGA 1'
4335 _vosrc="$_vosrc vo_xmga.c"
4336 _vomodules="xmga $_vomodules"
4337 else
4338 _def_xmga='#undef HAVE_XMGA'
4339 _novomodules="xmga $_novomodules"
4341 echores "$_xmga"
4344 echocheck "GGI"
4345 if test "$_ggi" = auto ; then
4346 cat > $TMPC << EOF
4347 #include <ggi/ggi.h>
4348 int main(void) { ggiInit(); return 0; }
4350 _ggi=no
4351 cc_check -lggi && _ggi=yes
4353 if test "$_ggi" = yes ; then
4354 _def_ggi='#define HAVE_GGI 1'
4355 _libs_mplayer="$_libs_mplayer -lggi"
4356 _vosrc="$_vosrc vo_ggi.c"
4357 _vomodules="ggi $_vomodules"
4358 else
4359 _def_ggi='#undef HAVE_GGI'
4360 _novomodules="ggi $_novomodules"
4362 echores "$_ggi"
4364 echocheck "GGI extension: libggiwmh"
4365 if test "$_ggiwmh" = auto ; then
4366 _ggiwmh=no
4367 cat > $TMPC << EOF
4368 #include <ggi/ggi.h>
4369 #include <ggi/wmh.h>
4370 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4372 cc_check -lggi -lggiwmh && _ggiwmh=yes
4374 # needed to get right output on obscure combination
4375 # like --disable-ggi --enable-ggiwmh
4376 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4377 _def_ggiwmh='#define HAVE_GGIWMH 1'
4378 _libs_mplayer="$_libs_mplayer -lggiwmh"
4379 else
4380 _ggiwmh=no
4381 _def_ggiwmh='#undef HAVE_GGIWMH'
4383 echores "$_ggiwmh"
4386 echocheck "AA"
4387 if test "$_aa" = auto ; then
4388 cat > $TMPC << EOF
4389 #include <aalib.h>
4390 extern struct aa_hardware_params aa_defparams;
4391 extern struct aa_renderparams aa_defrenderparams;
4392 int main(void) {
4393 aa_context *c;
4394 aa_renderparams *p;
4395 (void) aa_init(0, 0, 0);
4396 c = aa_autoinit(&aa_defparams);
4397 p = aa_getrenderparams();
4398 aa_autoinitkbd(c,0);
4399 return 0; }
4401 _aa=no
4402 for _ld_tmp in "-laa" ; do
4403 cc_check $_ld_tmp && _libs_mplayer="$_libs_mplayer $_ld_tmp" && _aa=yes && break
4404 done
4406 if test "$_aa" = yes ; then
4407 _def_aa='#define HAVE_AA 1'
4408 if cygwin ; then
4409 _libs_mplayer="$_libs_mplayer `aalib-config --libs | cut -d " " -f 2,5,6`"
4411 _vosrc="$_vosrc vo_aa.c"
4412 _vomodules="aa $_vomodules"
4413 else
4414 _def_aa='#undef HAVE_AA'
4415 _novomodules="aa $_novomodules"
4417 echores "$_aa"
4420 echocheck "CACA"
4421 if test "$_caca" = auto ; then
4422 _caca=no
4423 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4424 cat > $TMPC << EOF
4425 #include <caca.h>
4426 #ifdef CACA_API_VERSION_1
4427 #include <caca0.h>
4428 #endif
4429 int main(void) { (void) caca_init(); return 0; }
4431 cc_check `caca-config --libs` && _caca=yes
4434 if test "$_caca" = yes ; then
4435 _def_caca='#define HAVE_CACA 1'
4436 _inc_extra="$_inc_extra `caca-config --cflags`"
4437 _libs_mplayer="$_libs_mplayer `caca-config --libs`"
4438 _vosrc="$_vosrc vo_caca.c"
4439 _vomodules="caca $_vomodules"
4440 else
4441 _def_caca='#undef HAVE_CACA'
4442 _novomodules="caca $_novomodules"
4444 echores "$_caca"
4447 echocheck "SVGAlib"
4448 if test "$_svga" = auto ; then
4449 cat > $TMPC << EOF
4450 #include <vga.h>
4451 int main(void) { return 0; }
4453 _svga=no
4454 cc_check -lvga $_ld_lm && _svga=yes
4456 if test "$_svga" = yes ; then
4457 _def_svga='#define HAVE_SVGALIB 1'
4458 _libs_mplayer="$_libs_mplayer -lvga"
4459 _vosrc="$_vosrc vo_svga.c"
4460 _vomodules="svga $_vomodules"
4461 else
4462 _def_svga='#undef HAVE_SVGALIB'
4463 _novomodules="svga $_novomodules"
4465 echores "$_svga"
4468 echocheck "FBDev"
4469 if test "$_fbdev" = auto ; then
4470 _fbdev=no
4471 linux && _fbdev=yes
4473 if test "$_fbdev" = yes ; then
4474 _def_fbdev='#define HAVE_FBDEV 1'
4475 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
4476 _vomodules="fbdev $_vomodules"
4477 else
4478 _def_fbdev='#undef HAVE_FBDEV'
4479 _novomodules="fbdev $_novomodules"
4481 echores "$_fbdev"
4485 echocheck "DVB"
4486 if test "$_dvb" = auto ; then
4487 _dvb=no
4488 cat >$TMPC << EOF
4489 #include <sys/poll.h>
4490 #include <sys/ioctl.h>
4491 #include <stdio.h>
4492 #include <time.h>
4493 #include <unistd.h>
4494 #include <ost/dmx.h>
4495 #include <ost/frontend.h>
4496 #include <ost/sec.h>
4497 #include <ost/video.h>
4498 #include <ost/audio.h>
4499 int main(void) {return 0;}
4501 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4502 cc_check $_inc_tmp && _dvb=yes && \
4503 _inc_extra="$_inc_extra $_inc_tmp" && break
4504 done
4506 echores "$_dvb"
4507 if test "$_dvb" = yes ; then
4508 _def_dvb='#define HAVE_DVB 1'
4509 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4510 _aomodules="mpegpes(dvb) $_aomodules"
4511 _vomodules="mpegpes(dvb) $_vomodules"
4514 echocheck "DVB HEAD"
4515 if test "$_dvbhead" = auto ; then
4516 _dvbhead=no
4518 cat >$TMPC << EOF
4519 #include <sys/poll.h>
4520 #include <sys/ioctl.h>
4521 #include <stdio.h>
4522 #include <time.h>
4523 #include <unistd.h>
4524 #include <linux/dvb/dmx.h>
4525 #include <linux/dvb/frontend.h>
4526 #include <linux/dvb/video.h>
4527 #include <linux/dvb/audio.h>
4528 int main(void) {return 0;}
4530 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4531 cc_check $_inc_tmp && _dvbhead=yes && \
4532 _inc_extra="$_inc_extra $_inc_tmp" && break
4533 done
4535 echores "$_dvbhead"
4536 if test "$_dvbhead" = yes ; then
4537 _def_dvb='#define HAVE_DVB_HEAD 1'
4538 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4539 _aomodules="mpegpes(dvb) $_aomodules"
4540 _vomodules="mpegpes(dvb) $_vomodules"
4543 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4544 _def_dvb='#undef HAVE_DVB'
4545 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4546 _aomodules="mpegpes(file) $_aomodules"
4547 _vomodules="mpegpes(file) $_vomodules"
4550 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4551 _dvbin=yes
4552 _inputmodules="dvb $_inputmodules"
4553 else
4554 _dvbin=no
4555 _noinputmodules="dvb $_noinputmodules"
4561 echocheck "PNG support"
4562 if test "$_png" = auto ; then
4563 _png=no
4564 if irix ; then
4565 # Don't check for -lpng on irix since it has its own libpng
4566 # incompatible with the GNU libpng
4567 _res_comment="disabled on irix (not GNU libpng)"
4568 else
4569 cat > $TMPC << EOF
4570 #include <png.h>
4571 #include <string.h>
4572 int main(void) {
4573 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4574 printf("libpng: %s\n", png_libpng_ver);
4575 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4578 if cc_check -lpng -lz $_ld_lm ; then
4579 if tmp_run ; then
4580 _png=yes
4581 else
4582 _res_comment="mismatch of library and header versions"
4587 echores "$_png"
4588 if test "$_png" = yes ; then
4589 _def_png='#define HAVE_PNG 1'
4590 _ld_extra="$_ld_extra -lpng -lz"
4591 _vosrc="$_vosrc vo_png.c"
4592 _vomodules="png $_vomodules"
4593 else
4594 _def_png='#undef HAVE_PNG'
4595 _novomodules="png $_novomodules"
4598 echocheck "JPEG support"
4599 if test "$_jpeg" = auto ; then
4600 _jpeg=no
4601 cat > $TMPC << EOF
4602 #include <stdio.h>
4603 #include <stdlib.h>
4604 #include <setjmp.h>
4605 #include <string.h>
4606 #include <jpeglib.h>
4607 int main(void) { return 0; }
4609 if cc_check -ljpeg $_ld_lm ; then
4610 if tmp_run ; then
4611 _jpeg=yes
4615 echores "$_jpeg"
4617 if test "$_jpeg" = yes ; then
4618 _def_jpeg='#define HAVE_JPEG 1'
4619 _vosrc="$_vosrc vo_jpeg.c"
4620 _vomodules="jpeg $_vomodules"
4621 _ld_extra="$_ld_extra -ljpeg"
4622 else
4623 _def_jpeg='#undef HAVE_JPEG'
4624 _novomodules="jpeg $_novomodules"
4629 echocheck "PNM support"
4630 if test "$_pnm" = yes; then
4631 _def_pnm="#define HAVE_PNM"
4632 _vosrc="$_vosrc vo_pnm.c"
4633 _vomodules="pnm $_vomodules"
4634 else
4635 _def_pnm="#undef HAVE_PNM"
4636 _novomodules="pnm $_novomodules"
4638 echores "$_pnm"
4642 echocheck "GIF support"
4643 # This is to appease people who want to force gif support.
4644 # If it is forced to yes, then we still do checks to determine
4645 # which gif library to use.
4646 if test "$_gif" = yes ; then
4647 _force_gif=yes
4648 _gif=auto
4651 if test "$_gif" = auto ; then
4652 _gif=no
4653 cat > $TMPC << EOF
4654 #include <gif_lib.h>
4655 int main(void) { return 0; }
4657 for _ld_gif in "-lungif" "-lgif" ; do
4658 cc_check $_ld_gif && tmp_run && _gif=yes && break
4659 done
4662 # If no library was found, and the user wants support forced,
4663 # then we force it on with libgif, as this is the safest
4664 # assumption IMHO. (libungif & libregif both create symbolic
4665 # links to libgif. We also assume that no x11 support is needed,
4666 # because if you are forcing this, then you _should_ know what
4667 # you are doing. [ Besides, package maintainers should never
4668 # have compiled x11 deps into libungif in the first place. ] )
4669 # </rant>
4670 # --Joey
4671 if test "$_force_gif" = yes && test "$_gif" = no ; then
4672 _gif=yes
4673 _ld_gif="-lgif"
4676 if test "$_gif" = yes ; then
4677 _def_gif='#define HAVE_GIF 1'
4678 _vosrc="$_vosrc vo_gif89a.c"
4679 _codecmodules="gif $_codecmodules"
4680 _vomodules="gif89a $_vomodules"
4681 _res_comment="old version, some encoding functions disabled"
4682 _def_gif_4='#undef HAVE_GIF_4'
4683 _ld_extra="$_ld_extra $_ld_gif"
4685 cat > $TMPC << EOF
4686 #include <signal.h>
4687 #include <gif_lib.h>
4688 void catch() { exit(1); }
4689 int main(void) {
4690 signal(SIGSEGV, catch); // catch segfault
4691 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4692 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4693 return 0;
4696 if cc_check "$_ld_gif" && tmp_run ; then
4697 _def_gif_4='#define HAVE_GIF_4 1'
4698 _res_comment=""
4700 else
4701 _def_gif='#undef HAVE_GIF'
4702 _def_gif_4='#undef HAVE_GIF_4'
4703 _novomodules="gif89a $_novomodules"
4704 _nocodecmodules="gif $_nocodecmodules"
4706 echores "$_gif"
4709 case "$_gif" in yes*)
4710 echocheck "broken giflib workaround"
4711 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4713 cat > $TMPC << EOF
4714 #include <gif_lib.h>
4715 int main(void) {
4716 GifFileType gif;
4717 printf("UserData is at address %p\n", gif.UserData);
4718 return 0;
4721 if cc_check "$_ld_gif" && tmp_run ; then
4722 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4723 echores "disabled"
4724 else
4725 echores "enabled"
4728 esac
4731 echocheck "VESA support"
4732 if test "$_vesa" = auto ; then
4733 cat > $TMPC << EOF
4734 #include <vbe.h>
4735 int main(void) { vbeVersion(); return 0; }
4737 _vesa=no
4738 cc_check -lvbe -llrmi && _vesa=yes
4740 if test "$_vesa" = yes ; then
4741 _def_vesa='#define HAVE_VESA 1'
4742 _libs_mplayer="$_libs_mplayer -lvbe -llrmi"
4743 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c gtf.c"
4744 _vomodules="vesa $_vomodules"
4745 else
4746 _def_vesa='#undef HAVE_VESA'
4747 _novomodules="vesa $_novomodules"
4749 echores "$_vesa"
4751 #################
4752 # VIDEO + AUDIO #
4753 #################
4756 echocheck "SDL"
4757 if test -z "$_sdlconfig" ; then
4758 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4759 _sdlconfig="sdl-config"
4760 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4761 _sdlconfig="sdl11-config"
4762 else
4763 _sdlconfig=false
4766 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4767 cat > $TMPC << EOF
4768 #include <SDL.h>
4769 int main(void) {
4770 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4771 return 0;
4774 _sdl=no
4775 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4776 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4777 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4778 if test "$_sdlversion" -gt 116 ; then
4779 if test "$_sdlversion" -lt 121 ; then
4780 _def_sdlbuggy='#define BUGGY_SDL'
4781 else
4782 _def_sdlbuggy='#undef BUGGY_SDL'
4784 _sdl=yes
4789 if test "$_sdl" = yes ; then
4790 _def_sdl='#define HAVE_SDL 1'
4791 if cygwin ; then
4792 _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`"
4793 _inc_extra="$_inc_extra `$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`"
4794 elif mingw32 ; then
4795 _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//`"
4796 _inc_extra="$_inc_extra `$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`"
4797 else
4798 _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs`"
4799 _inc_extra="$_inc_extra `$_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//`"
4801 _vosrc="$_vosrc vo_sdl.c"
4802 _vomodules="sdl $_vomodules"
4803 _aosrc="$_aosrc ao_sdl.c"
4804 _aomodules="sdl $_aomodules"
4805 _res_comment="using $_sdlconfig"
4806 else
4807 _def_sdl='#undef HAVE_SDL'
4808 _novomodules="sdl $_novomodules"
4809 _noaomodules="sdl $_noaomodules"
4811 echores "$_sdl"
4814 if win32; then
4816 echocheck "Windows waveout"
4817 if test "$_win32waveout" = auto ; then
4818 cat > $TMPC << EOF
4819 #include <windows.h>
4820 #include <mmsystem.h>
4821 int main(void) { return 0; }
4823 _win32waveout=no
4824 cc_check -lwinmm && _win32waveout=yes
4826 if test "$_win32waveout" = yes ; then
4827 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4828 _libs_mplayer="$_libs_mplayer -lwinmm"
4829 _aosrc="$_aosrc ao_win32.c"
4830 _aomodules="win32 $_aomodules"
4831 else
4832 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4833 _noaomodules="win32 $_noaomodules"
4835 echores "$_win32waveout"
4837 echocheck "Directx"
4838 if test "$_directx" = auto ; then
4839 cat > $TMPC << EOF
4840 #include <windows.h>
4841 #include <ddraw.h>
4842 #include <dsound.h>
4843 int main(void) { return 0; }
4845 _directx=no
4846 cc_check -lgdi32 && _directx=yes
4848 if test "$_directx" = yes ; then
4849 _def_directx='#define HAVE_DIRECTX 1'
4850 _libs_mplayer="$_libs_mplayer -lgdi32"
4851 _vosrc="$_vosrc vo_directx.c"
4852 _vomodules="directx $_vomodules"
4853 _aosrc="$_aosrc ao_dsound.c"
4854 _aomodules="dsound $_aomodules"
4855 else
4856 _def_directx='#undef HAVE_DIRECTX'
4857 _novomodules="directx $_novomodules"
4858 _noaomodules="dsound $_noaomodules"
4860 echores "$_directx"
4862 fi #if win32; then
4865 echocheck "NAS"
4866 if test "$_nas" = auto ; then
4867 cat > $TMPC << EOF
4868 #include <audio/audiolib.h>
4869 int main(void) { return 0; }
4871 _nas=no
4872 cc_check $_ld_lm -laudio -lXt && _nas=yes
4874 if test "$_nas" = yes ; then
4875 _def_nas='#define HAVE_NAS 1'
4876 _libs_mplayer="$_libs_mplayer -laudio -lXt"
4877 _aosrc="$_aosrc ao_nas.c"
4878 _aomodules="nas $_aomodules"
4879 else
4880 _noaomodules="nas $_noaomodules"
4881 _def_nas='#undef HAVE_NAS'
4883 echores "$_nas"
4885 echocheck "DXR2"
4886 if test "$_dxr2" = auto; then
4887 _dxr2=no
4888 cat > $TMPC << EOF
4889 #include <dxr2ioctl.h>
4890 int main(void) { return 0; }
4892 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
4893 cc_check $_inc_tmp && _dxr2=yes && \
4894 _inc_extra="$_inc_extra $_inc_tmp" && break
4895 done
4897 if test "$_dxr2" = yes; then
4898 _def_dxr2='#define HAVE_DXR2 1'
4899 _vosrc="$_vosrc vo_dxr2.c"
4900 _aosrc="$_aosrc ao_dxr2.c"
4901 _aomodules="dxr2 $_aomodules"
4902 _vomodules="dxr2 $_vomodules"
4903 else
4904 _def_dxr2='#undef HAVE_DXR2'
4905 _noaomodules="dxr2 $_noaomodules"
4906 _novomodules="dxr2 $_novomodules"
4908 echores "$_dxr2"
4910 echocheck "DXR3/H+"
4911 if test "$_dxr3" = auto ; then
4912 cat > $TMPC << EOF
4913 #include <linux/em8300.h>
4914 int main(void) { return 0; }
4916 _dxr3=no
4917 cc_check && _dxr3=yes
4919 if test "$_dxr3" = yes ; then
4920 _def_dxr3='#define HAVE_DXR3 1'
4921 _vosrc="$_vosrc vo_dxr3.c"
4922 _vomodules="dxr3 $_vomodules"
4923 else
4924 _def_dxr3='#undef HAVE_DXR3'
4925 _novomodules="dxr3 $_novomodules"
4927 echores "$_dxr3"
4930 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4931 if test "$_ivtv" = auto ; then
4932 cat > $TMPC << EOF
4933 #include <stdlib.h>
4934 #include <inttypes.h>
4935 #include <linux/types.h>
4936 #include <linux/videodev2.h>
4937 #include <linux/ivtv.h>
4938 #include <sys/ioctl.h>
4939 int main(void) {
4940 struct ivtv_cfg_stop_decode sd;
4941 struct ivtv_cfg_start_decode sd1;
4942 ioctl (0, IVTV_IOC_START_DECODE, &sd1);
4943 ioctl (0, IVTV_IOC_STOP_DECODE, &sd);
4944 return 0; }
4946 _ivtv=no
4947 cc_check && _ivtv=yes
4949 if test "$_ivtv" = yes ; then
4950 _def_ivtv='#define HAVE_IVTV 1'
4951 _vosrc="$_vosrc vo_ivtv.c"
4952 _vomodules="ivtv $_vomodules"
4953 _aosrc="$_aosrc ao_ivtv.c"
4954 _aomodules="ivtv $_aomodules"
4955 else
4956 _def_ivtv='#undef HAVE_IVTV'
4957 _novomodules="ivtv $_novomodules"
4958 _noaomodules="ivtv $_noaomodules"
4960 echores "$_ivtv"
4963 echocheck "V4L2 MPEG Decoder"
4964 if test "$_v4l2" = auto ; then
4965 cat > $TMPC << EOF
4966 #include <stdlib.h>
4967 #include <inttypes.h>
4968 #include <linux/types.h>
4969 #include <linux/videodev2.h>
4970 #include <linux/version.h>
4971 int main(void) {
4972 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4973 #error kernel headers too old, need 2.6.22
4974 bad_kernel_version();
4975 #endif
4976 struct v4l2_ext_controls ctrls;
4977 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4978 return 0;
4981 _v4l2=no
4982 cc_check && _v4l2=yes
4984 if test "$_v4l2" = yes ; then
4985 _def_v4l2='#define HAVE_V4L2_DECODER 1'
4986 _vosrc="$_vosrc vo_v4l2.c"
4987 _vomodules="v4l2 $_vomodules"
4988 _aosrc="$_aosrc ao_v4l2.c"
4989 _aomodules="v4l2 $_aomodules"
4990 else
4991 _def_v4l2='#undef HAVE_V4L2_DECODER'
4992 _novomodules="v4l2 $_novomodules"
4993 _noaomodules="v4l2 $_noaomodules"
4995 echores "$_v4l2"
4999 #########
5000 # AUDIO #
5001 #########
5004 echocheck "OSS Audio"
5005 if test "$_ossaudio" = auto ; then
5006 cat > $TMPC << EOF
5007 #include <sys/ioctl.h>
5008 #include <$_soundcard_header>
5009 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5011 _ossaudio=no
5012 cc_check && _ossaudio=yes
5014 if test "$_ossaudio" = yes ; then
5015 _def_ossaudio='#define USE_OSS_AUDIO 1'
5016 _aosrc="$_aosrc ao_oss.c"
5017 _aomodules="oss $_aomodules"
5018 if test "$_linux_devfs" = yes; then
5019 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5020 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5021 else
5022 cat > $TMPC << EOF
5023 #include <sys/ioctl.h>
5024 #include <$_soundcard_header>
5025 #ifdef OPEN_SOUND_SYSTEM
5026 int main(void) { return 0; }
5027 #else
5028 #error Not the real thing
5029 #endif
5031 _real_ossaudio=no
5032 cc_check && _real_ossaudio=yes
5033 if test "$_real_ossaudio" = yes; then
5034 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5035 elif netbsd || openbsd ; then
5036 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5037 _ld_extra="$_ld_extra -lossaudio"
5038 else
5039 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5041 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5043 else
5044 _def_ossaudio='#undef USE_OSS_AUDIO'
5045 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5046 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5047 _noaomodules="oss $_noaomodules"
5049 echores "$_ossaudio"
5052 echocheck "aRts"
5053 if test "$_arts" = auto ; then
5054 _arts=no
5055 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5057 cat > $TMPC << EOF
5058 #include <artsc.h>
5059 int main(void) { return 0; }
5061 cc_check `artsc-config --libs` `artsc-config --cflags` && tmp_run && _arts=yes
5066 if test "$_arts" = yes ; then
5067 _def_arts='#define USE_ARTS 1'
5068 _aosrc="$_aosrc ao_arts.c"
5069 _aomodules="arts $_aomodules"
5070 _libs_mplayer="$_libs_mplayer `artsc-config --libs`"
5071 _inc_extra="$_inc_extra `artsc-config --cflags`"
5072 else
5073 _noaomodules="arts $_noaomodules"
5075 echores "$_arts"
5078 echocheck "EsounD"
5079 if test "$_esd" = auto ; then
5080 _esd=no
5081 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5083 cat > $TMPC << EOF
5084 #include <esd.h>
5085 int main(void) { int fd = esd_open_sound("test"); return fd; }
5087 cc_check `esd-config --libs` `esd-config --cflags` && _esd=yes
5091 echores "$_esd"
5093 if test "$_esd" = yes ; then
5094 _def_esd='#define USE_ESD 1'
5095 _aosrc="$_aosrc ao_esd.c"
5096 _aomodules="esd $_aomodules"
5097 _libs_mplayer="$_libs_mplayer `esd-config --libs`"
5098 _inc_extra="$_inc_extra `esd-config --cflags`"
5100 echocheck "esd_get_latency()"
5101 cat > $TMPC << EOF
5102 #include <esd.h>
5103 int main(void) { return esd_get_latency(0); }
5105 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
5106 echores "$_esd_latency"
5107 else
5108 _def_esd='#undef USE_ESD'
5109 _def_esd_latency='#undef HAVE_ESD_LATENCY'
5110 _noaomodules="esd $_noaomodules"
5113 echocheck "pulse"
5114 if test "$_pulse" = auto ; then
5115 _pulse=no
5116 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5118 cat > $TMPC << EOF
5119 #include <pulse/pulseaudio.h>
5120 int main(void) { return 0; }
5122 cc_check `$_pkg_config --libs --cflags libpulse` && tmp_run && _pulse=yes
5126 echores "$_pulse"
5128 if test "$_pulse" = yes ; then
5129 _def_pulse='#define USE_PULSE 1'
5130 _aosrc="$_aosrc ao_pulse.c"
5131 _aomodules="pulse $_aomodules"
5132 _libs_mplayer="$_libs_mplayer `$_pkg_config --libs libpulse`"
5133 _inc_extra="$_inc_extra `$_pkg_config --cflags libpulse`"
5134 else
5135 _def_pulse='#undef USE_PULSE'
5136 _noaomodules="pulse $_noaomodules"
5140 echocheck "JACK"
5141 if test "$_jack" = auto ; then
5142 _jack=yes
5144 cat > $TMPC << EOF
5145 #include <jack/jack.h>
5146 int main(void) { jack_client_new("test"); return 0; }
5148 if cc_check -ljack ; then
5149 _libs_mplayer="$_libs_mplayer -ljack"
5150 elif cc_check `$_pkg_config --libs --cflags --silence-errors jack` ; then
5151 _libs_mplayer="$_libs_mplayer `$_pkg_config --libs jack`"
5152 _inc_extra="$_inc_extra "`$_pkg_config --cflags jack`""
5153 else
5154 _jack=no
5158 if test "$_jack" = yes ; then
5159 _def_jack='#define USE_JACK 1'
5160 _aosrc="$_aosrc ao_jack.c"
5161 _aomodules="jack $_aomodules"
5162 else
5163 _noaomodules="jack $_noaomodules"
5165 echores "$_jack"
5167 echocheck "OpenAL"
5168 if test "$_openal" = auto ; then
5169 _openal=no
5170 cat > $TMPC << EOF
5171 #ifdef OPENAL_AL_H
5172 #include <OpenAL/al.h>
5173 #else
5174 #include <AL/al.h>
5175 #endif
5176 int main(void) {
5177 alSourceQueueBuffers(0, 0, 0);
5178 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5179 return 0;
5182 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5183 cc_check $I && _openal=yes && break
5184 cc_check -DOPENAL_AL_H=1 $I && _def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5185 done
5186 test "$_openal" = yes && _libs_mplayer="$_libs_mplayer $I"
5188 if test "$_openal" = yes ; then
5189 _def_openal='#define USE_OPENAL 1'
5190 _aosrc="$_aosrc ao_openal.c"
5191 _aomodules="openal $_aomodules"
5192 else
5193 _noaomodules="openal $_noaomodules"
5195 echores "$_openal"
5197 echocheck "ALSA audio"
5198 if test "$_alsa" != no ; then
5199 _alsa=no
5200 cat > $TMPC << EOF
5201 #include <sys/time.h>
5202 #include <sys/asoundlib.h>
5203 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5204 #error "alsa version != 0.5.x"
5205 #endif
5206 int main(void) { return 0; }
5208 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5210 cat > $TMPC << EOF
5211 #include <sys/time.h>
5212 #include <sys/asoundlib.h>
5213 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5214 #error "alsa version != 0.9.x"
5215 #endif
5216 int main(void) { return 0; }
5218 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5219 cat > $TMPC << EOF
5220 #include <sys/time.h>
5221 #include <alsa/asoundlib.h>
5222 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5223 #error "alsa version != 0.9.x"
5224 #endif
5225 int main(void) { return 0; }
5227 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5229 cat > $TMPC << EOF
5230 #include <sys/time.h>
5231 #include <sys/asoundlib.h>
5232 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5233 #error "alsa version != 1.0.x"
5234 #endif
5235 int main(void) { return 0; }
5237 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5238 cat > $TMPC << EOF
5239 #include <sys/time.h>
5240 #include <alsa/asoundlib.h>
5241 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5242 #error "alsa version != 1.0.x"
5243 #endif
5244 int main(void) { return 0; }
5246 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5248 _def_alsa5='#undef HAVE_ALSA5'
5249 _def_alsa9='#undef HAVE_ALSA9'
5250 _def_alsa1x='#undef HAVE_ALSA1X'
5251 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5252 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5253 if test "$_alsaver" ; then
5254 _alsa=yes
5255 if test "$_alsaver" = '0.5.x' ; then
5256 _alsa5=yes
5257 _aosrc="$_aosrc ao_alsa5.c"
5258 _aomodules="alsa5 $_aomodules"
5259 _def_alsa5='#define HAVE_ALSA5 1'
5260 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5261 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5262 elif test "$_alsaver" = '0.9.x-sys' ; then
5263 _alsa9=yes
5264 _aosrc="$_aosrc ao_alsa.c"
5265 _aomodules="alsa $_aomodules"
5266 _def_alsa9='#define HAVE_ALSA9 1'
5267 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5268 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5269 elif test "$_alsaver" = '0.9.x-alsa' ; then
5270 _alsa9=yes
5271 _aosrc="$_aosrc ao_alsa.c"
5272 _aomodules="alsa $_aomodules"
5273 _def_alsa9='#define HAVE_ALSA9 1'
5274 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5275 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5276 elif test "$_alsaver" = '1.0.x-sys' ; then
5277 _alsa1x=yes
5278 _aosrc="$_aosrc ao_alsa.c"
5279 _aomodules="alsa $_aomodules"
5280 _def_alsa1x="#define HAVE_ALSA1X 1"
5281 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5282 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5283 elif test "$_alsaver" = '1.0.x-alsa' ; then
5284 _alsa1x=yes
5285 _aosrc="$_aosrc ao_alsa.c"
5286 _aomodules="alsa $_aomodules"
5287 _def_alsa1x="#define HAVE_ALSA1X 1"
5288 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5289 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5290 else
5291 _alsa=no
5292 _res_comment="unknown version"
5294 _ld_extra="$_ld_extra -lasound $_ld_dl $_ld_pthread"
5295 else
5296 _noaomodules="alsa $_noaomodules"
5298 echores "$_alsa"
5301 echocheck "Sun audio"
5302 if test "$_sunaudio" = auto ; then
5303 cat > $TMPC << EOF
5304 #include <sys/types.h>
5305 #include <sys/audioio.h>
5306 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5308 _sunaudio=no
5309 cc_check && _sunaudio=yes
5311 if test "$_sunaudio" = yes ; then
5312 _def_sunaudio='#define USE_SUN_AUDIO 1'
5313 _aosrc="$_aosrc ao_sun.c"
5314 _aomodules="sun $_aomodules"
5315 else
5316 _def_sunaudio='#undef USE_SUN_AUDIO'
5317 _noaomodules="sun $_noaomodules"
5319 echores "$_sunaudio"
5322 if sunos; then
5323 echocheck "Sun mediaLib"
5324 if test "$_mlib" = auto ; then
5325 _mlib=no
5326 cat > $TMPC << EOF
5327 #include <mlib.h>
5328 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5330 cc_check -lmlib && _mlib=yes
5332 test "$_mlib" = yes && _cpuexts="MLIB $_cpuexts"
5333 echores "$_mlib"
5334 fi #if sunos
5337 if irix; then
5338 echocheck "SGI audio"
5339 if test "$_sgiaudio" = auto ; then
5340 # check for SGI audio
5341 cat > $TMPC << EOF
5342 #include <dmedia/audio.h>
5343 int main(void) { return 0; }
5345 _sgiaudio=no
5346 cc_check && _sgiaudio=yes
5348 if test "$_sgiaudio" = "yes" ; then
5349 _def_sgiaudio='#define USE_SGI_AUDIO 1'
5350 _libs_mplayer="$_libs_mplayer -laudio"
5351 _aosrc="$_aosrc ao_sgi.c"
5352 _aomodules="sgi $_aomodules"
5353 else
5354 _def_sgiaudio='#undef USE_SGI_AUDIO'
5355 _noaomodules="sgi $_noaomodules"
5357 echores "$_sgiaudio"
5358 fi #if irix
5361 echocheck "VCD support"
5362 if linux || freebsd || netbsd || dragonfly || bsdos || darwin || sunos || mingw32; then
5363 _inputmodules="vcd $_inputmodules"
5364 _def_vcd='#define HAVE_VCD 1'
5365 _vcd="yes"
5366 else
5367 _def_vcd='#undef HAVE_VCD'
5368 _noinputmodules="vcd $_noinputmodules"
5369 _res_comment="not supported on this OS"
5370 _vcd="no"
5372 echores "$_vcd"
5376 echocheck "dvdread"
5377 if test "$_dvdread_internal" = auto ; then
5378 _dvdread_internal=no
5379 _dvdread=no
5380 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5381 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5382 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5383 || darwin || win32; then
5384 _dvdread_internal=yes
5385 _dvdread=yes
5387 elif test "$_dvdread" = auto ; then
5388 _dvdread=no
5389 if test "$_dl" = yes; then
5390 cat > $TMPC << EOF
5391 #include <inttypes.h>
5392 #include <libdvdread/dvd_reader.h>
5393 #include <libdvdread/ifo_types.h>
5394 #include <libdvdread/ifo_read.h>
5395 #include <libdvdread/nav_read.h>
5396 int main(void) { return 0; }
5399 _dvdreadcflags=`$_dvdreadconfig --cflags`
5400 _dvdreadlibs=`$_dvdreadconfig --libs`
5401 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5402 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5403 _dvdread=yes
5404 _inc_extra="$_inc_extra $_dvdreadcflags"
5405 _ld_extra="$_ld_extra $_dvdreadlibs"
5406 _res_comment="external"
5410 if test "$_dvdread_internal" = yes; then
5411 _def_dvdread_internal="#define USE_DVDREAD_INTERNAL 1"
5412 _def_dvdread='#define USE_DVDREAD 1'
5413 _inputmodules="dvdread(internal) $_inputmodules"
5414 _largefiles=yes
5415 _res_comment="internal"
5416 elif test "$_dvdread" = yes; then
5417 _def_dvdread='#define USE_DVDREAD 1'
5418 _largefiles=yes
5419 _ld_extra="$_ld_extra -ldvdread"
5420 _inputmodules="dvdread(external) $_inputmodules"
5421 _res_comment="external"
5422 else
5423 _def_dvdread_internal="#undef USE_DVDREAD_INTERNAL"
5424 _def_dvdread='#undef USE_DVDREAD'
5425 _noinputmodules="dvdread $_noinputmodules"
5427 echores "$_dvdread"
5430 echocheck "internal libdvdcss"
5431 if test "$_libdvdcss_internal" = auto ; then
5432 _libdvdcss_internal=no
5433 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5434 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5436 if test "$_libdvdcss_internal" = yes ; then
5437 if linux || netbsd || openbsd || bsdos ; then
5438 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5439 openbsd && _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5440 elif freebsd || dragonfly ; then
5441 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5442 elif darwin ; then
5443 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5444 _ld_extra="$_ld_extra -framework IOKit"
5446 _libdvdcss_dvdread_flags="-Ilibdvdcss -DHAVE_DVDCSS_DVDCSS_H"
5447 _inputmodules="libdvdcss(internal) $_inputmodules"
5448 _largefiles=yes
5449 else
5450 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5452 echores "$_libdvdcss_internal"
5455 echocheck "cdparanoia"
5456 if test "$_cdparanoia" = auto ; then
5457 cat > $TMPC <<EOF
5458 #include <cdda_interface.h>
5459 #include <cdda_paranoia.h>
5460 // This need a better test. How ?
5461 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5463 _cdparanoia=no
5464 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5465 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5466 _cdparanoia=yes && _inc_extra="$_inc_extra $_inc_tmp" && break
5467 done
5469 if test "$_cdparanoia" = yes ; then
5470 _cdda='yes'
5471 _ld_extra="$_ld_extra -lcdda_interface -lcdda_paranoia"
5472 openbsd && _ld_extra="$_ld_extra -lutil"
5474 echores "$_cdparanoia"
5477 echocheck "libcdio"
5478 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5479 cat > $TMPC << EOF
5480 #include <stdio.h>
5481 #include <cdio/version.h>
5482 #include <cdio/cdda.h>
5483 #include <cdio/paranoia.h>
5484 int main(void) {
5485 void *test = cdda_verbose_set;
5486 printf("%s\n", CDIO_VERSION);
5487 return test == (void *)1;
5490 _libcdio=no
5491 for _ld_tmp in "" "-lwinmm" ; do
5492 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5493 cc_check $_ld_tmp $_ld_lm \
5494 && _libcdio=yes && _ld_extra="$_ld_extra $_ld_tmp" && break
5495 done
5496 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5497 _inc_tmp=`$_pkg_config --cflags libcdio_paranoia`
5498 _ld_tmp=`$_pkg_config --libs libcdio_paranoia`
5499 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5500 && _ld_extra="$_ld_extra $_ld_tmp" && _inc_extra="$_inc_extra $_inc_tmp"
5503 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5504 _cdda='yes'
5505 _def_libcdio='#define HAVE_LIBCDIO'
5506 _def_havelibcdio='yes'
5507 else
5508 if test "$_cdparanoia" = yes ; then
5509 _res_comment="using cdparanoia"
5511 _def_libcdio='#undef HAVE_LIBCDIO'
5512 _def_havelibcdio='no'
5514 echores "$_libcdio"
5516 if test "$_cdda" = yes ; then
5517 test $_cddb = auto && test $_network = yes && _cddb=yes
5518 _def_cdparanoia='#define HAVE_CDDA'
5519 _inputmodules="cdda $_inputmodules"
5520 else
5521 _def_cdparanoia='#undef HAVE_CDDA'
5522 _noinputmodules="cdda $_noinputmodules"
5525 if test "$_cddb" = yes ; then
5526 _def_cddb='#define HAVE_CDDB'
5527 _inputmodules="cddb $_inputmodules"
5528 else
5529 _cddb=no
5530 _def_cddb='#undef HAVE_CDDB'
5531 _noinputmodules="cddb $_noinputmodules"
5534 echocheck "bitmap font support"
5535 if test "$_bitmap_font" = yes ; then
5536 _def_bitmap_font="#define HAVE_BITMAP_FONT 1"
5537 else
5538 _def_bitmap_font="#undef HAVE_BITMAP_FONT"
5540 echores "$_bitmap_font"
5543 echocheck "freetype >= 2.0.9"
5545 # freetype depends on iconv
5546 if test "$_iconv" = no ; then
5547 _freetype=no
5548 _res_comment="iconv support needed"
5551 if test "$_freetype" = auto ; then
5552 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5553 cat > $TMPC << EOF
5554 #include <stdio.h>
5555 #include <ft2build.h>
5556 #include FT_FREETYPE_H
5557 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5558 #error "Need FreeType 2.0.9 or newer"
5559 #endif
5560 int main(void) {
5561 FT_Library library;
5562 FT_Int major=-1,minor=-1,patch=-1;
5563 int err=FT_Init_FreeType(&library);
5564 if(err){
5565 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5566 exit(err);
5568 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5569 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5570 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5571 (int)major,(int)minor,(int)patch );
5572 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
5573 printf("Library and header version mismatch! Fix it in your distribution!\n");
5574 exit(1);
5576 return 0;
5579 _freetype=no
5580 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _freetype=yes
5581 else
5582 _freetype=no
5585 if test "$_freetype" = yes ; then
5586 _def_freetype='#define HAVE_FREETYPE'
5587 _inc_extra="$_inc_extra `$_freetypeconfig --cflags`"
5588 _ld_extra="$_ld_extra `$_freetypeconfig --libs`"
5589 else
5590 _def_freetype='#undef HAVE_FREETYPE'
5592 echores "$_freetype"
5594 if test "$_freetype" = no ; then
5595 _fontconfig=no
5596 _res_comment="freetype support needed"
5598 echocheck "fontconfig"
5599 if test "$_fontconfig" = auto ; then
5600 cat > $TMPC << EOF
5601 #include <stdio.h>
5602 #include <stdlib.h>
5603 #include <fontconfig/fontconfig.h>
5604 int main(void) {
5605 int err = FcInit();
5606 if(err == FcFalse){
5607 printf("Couldn't initialize fontconfig lib\n");
5608 exit(err);
5610 return 0;
5613 _fontconfig=no
5614 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
5615 _ld_tmp="-lfontconfig $_ld_tmp"
5616 cc_check $_ld_tmp && _fontconfig=yes && _ld_extra="$_ld_extra $_ld_tmp" && break
5617 done
5618 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5619 _inc_tmp=`$_pkg_config --cflags fontconfig`
5620 _ld_tmp=`$_pkg_config --libs fontconfig`
5621 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
5622 && _ld_extra="$_ld_extra $_ld_tmp" && _inc_extra="$_inc_extra $_inc_tmp"
5625 if test "$_fontconfig" = yes ; then
5626 _def_fontconfig='#define HAVE_FONTCONFIG'
5627 else
5628 _def_fontconfig='#undef HAVE_FONTCONFIG'
5630 echores "$_fontconfig"
5633 echocheck "SSA/ASS support"
5634 # libass depends on FreeType
5635 if test "$_freetype" = no ; then
5636 _ass=no
5637 _res_comment="FreeType support needed"
5640 if test "$_ass" = auto ; then
5641 cat > $TMPC << EOF
5642 #include <ft2build.h>
5643 #include FT_FREETYPE_H
5644 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8)))
5645 #error "Need FreeType 2.1.8 or newer"
5646 #endif
5647 int main(void) { return 0; }
5649 _ass=no
5650 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _ass=yes
5651 if test "$_ass" = no ; then
5652 _res_comment="FreeType >= 2.1.8 needed"
5655 if test "$_ass" = yes ; then
5656 _def_ass='#define USE_ASS'
5657 else
5658 _def_ass='#undef USE_ASS'
5660 echores "$_ass"
5663 echocheck "fribidi with charsets"
5664 if test "$_fribidi" = auto ; then
5665 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5666 cat > $TMPC << EOF
5667 #include <stdio.h>
5668 /* workaround for fribidi 0.10.4 and below */
5669 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5670 #include <fribidi/fribidi.h>
5671 int main(void) {
5672 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
5673 printf("Fribidi headers are not consistents with the library!\n");
5674 exit(1);
5676 return 0;
5679 _fribidi=no
5680 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && tmp_run && _fribidi=yes
5681 else
5682 _fribidi=no
5685 if test "$_fribidi" = yes ; then
5686 _def_fribidi='#define USE_FRIBIDI'
5687 _inc_extra="$_inc_extra `$_fribidiconfig --cflags`"
5688 _ld_extra="$_ld_extra `$_fribidiconfig --libs`"
5689 else
5690 _def_fribidi='#undef USE_FRIBIDI'
5692 echores "$_fribidi"
5695 echocheck "ENCA"
5696 if test "$_enca" = auto ; then
5697 cat > $TMPC << EOF
5698 #include <sys/types.h>
5699 #include <enca.h>
5700 int main(void) {
5701 const char **langs;
5702 size_t langcnt;
5703 langs = enca_get_languages(&langcnt);
5704 return 0;
5707 _enca=no
5708 cc_check -lenca $_ld_lm && _enca=yes
5710 if test "$_enca" = yes ; then
5711 _def_enca='#define HAVE_ENCA 1'
5712 _ld_extra="$_ld_extra -lenca"
5713 else
5714 _def_enca='#undef HAVE_ENCA'
5716 echores "$_enca"
5719 echocheck "zlib"
5720 cat > $TMPC << EOF
5721 #include <zlib.h>
5722 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
5724 _zlib=no
5725 cc_check -lz && _zlib=yes
5726 if test "$_zlib" = yes ; then
5727 _def_zlib='#define HAVE_ZLIB 1'
5728 _ld_extra="$_ld_extra -lz"
5729 else
5730 _def_zlib='#undef HAVE_ZLIB'
5731 _libavdecoders=`echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// `
5732 _libavencoders=`echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// `
5734 echores "$_zlib"
5737 echocheck "RTC"
5738 if test "$_rtc" = auto ; then
5739 cat > $TMPC << EOF
5740 #include <sys/ioctl.h>
5741 #ifdef __linux__
5742 #include <linux/rtc.h>
5743 #else
5744 #include <rtc.h>
5745 #define RTC_PIE_ON RTCIO_PIE_ON
5746 #endif
5747 int main(void) { return RTC_PIE_ON; }
5749 _rtc=no
5750 cc_check && _rtc=yes
5751 ppc && _rtc=no
5753 if test "$_rtc" = yes ; then
5754 _def_rtc='#define HAVE_RTC 1'
5755 else
5756 _def_rtc='#undef HAVE_RTC'
5758 echores "$_rtc"
5761 echocheck "liblzo2 support"
5762 if test "$_liblzo" = auto ; then
5763 _liblzo=no
5764 cat > $TMPC << EOF
5765 #include <lzo/lzo1x.h>
5766 int main(void) { lzo_init();return 0; }
5768 cc_check -llzo2 && _liblzo=yes
5770 if test "$_liblzo" = yes ; then
5771 _def_liblzo='#define USE_LIBLZO 1'
5772 _ld_extra="$_ld_extra -llzo2"
5773 _codecmodules="liblzo $_codecmodules"
5774 else
5775 _def_liblzo='#undef USE_LIBLZO'
5776 _nocodecmodules="liblzo $_nocodecmodules"
5778 echores "$_liblzo"
5781 echocheck "mad support"
5782 if test "$_mad" = auto ; then
5783 _mad=no
5784 cat > $TMPC << EOF
5785 #include <mad.h>
5786 int main(void) { return 0; }
5788 cc_check -lmad && _mad=yes
5790 if test "$_mad" = yes ; then
5791 _def_mad='#define USE_LIBMAD 1'
5792 _ld_extra="$_ld_extra -lmad"
5793 _codecmodules="libmad $_codecmodules"
5794 else
5795 _def_mad='#undef USE_LIBMAD'
5796 _nocodecmodules="libmad $_nocodecmodules"
5798 echores "$_mad"
5800 echocheck "Twolame"
5801 if test "$_twolame" = auto ; then
5802 cat > $TMPC <<EOF
5803 #include <twolame.h>
5804 int main(void) { twolame_init(); return 0; }
5806 _twolame=no
5807 cc_check -ltwolame $_ld_lm && _twolame=yes
5809 if test "$_twolame" = yes ; then
5810 _def_twolame='#define HAVE_TWOLAME 1'
5811 _libs_mencoder="$_libs_mencoder -ltwolame"
5812 _codecmodules="twolame $_codecmodules"
5813 else
5814 _def_twolame='#undef HAVE_TWOLAME'
5815 _nocodecmodules="twolame $_nocodecmodules"
5817 echores "$_twolame"
5819 echocheck "Toolame"
5820 if test "$_toolame" = auto ; then
5821 _toolame=no
5822 if test "$_twolame" = yes ; then
5823 _res_comment="disabled by twolame"
5824 else
5825 cat > $TMPC <<EOF
5826 #include <toolame.h>
5827 int main(void) { toolame_init(); return 0; }
5829 cc_check -ltoolame $_ld_lm && _toolame=yes
5832 if test "$_toolame" = yes ; then
5833 _def_toolame='#define HAVE_TOOLAME 1'
5834 _libs_mencoder="$_libs_mencoder -ltoolame"
5835 _codecmodules="toolame $_codecmodules"
5836 else
5837 _def_toolame='#undef HAVE_TOOLAME'
5838 _nocodecmodules="toolame $_nocodecmodules"
5840 if test "$_toolamedir" ; then
5841 _res_comment="using $_toolamedir"
5843 echores "$_toolame"
5845 echocheck "OggVorbis support"
5846 if test "$_tremor_internal" = yes; then
5847 _libvorbis=no
5848 elif test "$_tremor_external" = auto; then
5849 _tremor_external=no
5850 cat > $TMPC << EOF
5851 #include <tremor/ivorbiscodec.h>
5852 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5854 cc_check -logg -lvorbisidec $_ld_lm && _tremor_external=yes && _libvorbis=no
5856 if test "$_libvorbis" = auto; then
5857 _libvorbis=no
5858 cat > $TMPC << EOF
5859 #include <vorbis/codec.h>
5860 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5862 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
5864 if test "$_tremor_internal" = yes ; then
5865 _vorbis=yes
5866 _def_vorbis='#define HAVE_OGGVORBIS 1'
5867 _def_tremor='#define TREMOR 1'
5868 _codecmodules="tremor(internal) $_codecmodules"
5869 _res_comment="internal Tremor"
5870 if test "$_tremor_low" = yes ; then
5871 CFLAGS="$CFLAGS -D_LOW_ACCURACY_"
5872 _res_comment="internal low accuracy Tremor"
5874 elif test "$_tremor_external" = yes ; then
5875 _vorbis=yes
5876 _def_vorbis='#define HAVE_OGGVORBIS 1'
5877 _def_tremor='#define TREMOR 1'
5878 _codecmodules="tremor(external) $_codecmodules"
5879 _res_comment="external Tremor"
5880 _ld_extra="$_ld_extra -logg -lvorbisidec"
5881 elif test "$_libvorbis" = yes ; then
5882 _vorbis=yes
5883 _def_vorbis='#define HAVE_OGGVORBIS 1'
5884 _codecmodules="libvorbis $_codecmodules"
5885 _res_comment="libvorbis"
5886 _ld_extra="$_ld_extra -lvorbis -logg"
5887 else
5888 _vorbis=no
5889 _nocodecmodules="libvorbis $_nocodecmodules"
5891 echores "$_vorbis"
5893 echocheck "libspeex (version >= 1.1 required)"
5894 if test "$_speex" = auto ; then
5895 _speex=no
5896 cat > $TMPC << EOF
5897 #include <speex/speex.h>
5898 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
5900 cc_check -lspeex $_ld_lm && _speex=yes
5902 if test "$_speex" = yes ; then
5903 _def_speex='#define HAVE_SPEEX 1'
5904 _ld_extra="$_ld_extra -lspeex"
5905 _codecmodules="speex $_codecmodules"
5906 else
5907 _def_speex='#undef HAVE_SPEEX'
5908 _nocodecmodules="speex $_nocodecmodules"
5910 echores "$_speex"
5912 echocheck "OggTheora support"
5913 if test "$_theora" = auto ; then
5914 _theora=no
5915 cat > $TMPC << EOF
5916 #include <theora/theora.h>
5917 #include <string.h>
5918 int main(void) {
5919 /* theora is in flux, make sure that all interface routines and
5920 * datatypes exist and work the way we expect it, so we don't break
5921 * mplayer */
5922 ogg_packet op;
5923 theora_comment tc;
5924 theora_info inf;
5925 theora_state st;
5926 yuv_buffer yuv;
5927 int r;
5928 double t;
5930 theora_info_init (&inf);
5931 theora_comment_init (&tc);
5933 return 0;
5935 /* we don't want to execute this kind of nonsense; just for making sure
5936 * that compilation works... */
5937 memset(&op, 0, sizeof(op));
5938 r = theora_decode_header (&inf, &tc, &op);
5939 r = theora_decode_init (&st, &inf);
5940 t = theora_granule_time (&st, op.granulepos);
5941 r = theora_decode_packetin (&st, &op);
5942 r = theora_decode_YUVout (&st, &yuv);
5943 theora_clear (&st);
5945 return 0;
5948 for _ld_theora in "`$_pkg_config --silence-errors --libs --cflags theora`" "-ltheora -logg"; do
5949 cc_check $_ld_theora && _ld_extra="$_ld_extra $_ld_theora" \
5950 && _theora=yes && break
5951 done
5952 if test "$_theora" = no && test "$_tremor_internal" = yes; then
5953 for _ld_theora in "`$_pkg_config --silence-errors --libs --cflags theora`" "-ltheora -logg"; do
5954 cc_check -I. tremor/bitwise.c $_ld_theora \
5955 && _ld_extra="$_ld_extra $_ld_theora" && theora=yes && break
5956 done
5959 if test "$_theora" = yes ; then
5960 _def_theora='#define HAVE_OGGTHEORA 1'
5961 _codecmodules="libtheora $_codecmodules"
5962 # when --enable-theora is forced, we'd better provide a probably sane
5963 # $_ld_theora than nothing
5964 test -z "$_ld_theora" && _ld_extra="$_ld_extra -ltheora -logg"
5965 else
5966 _def_theora='#undef HAVE_OGGTHEORA'
5967 _nocodecmodules="libtheora $_nocodecmodules"
5969 echores "$_theora"
5971 echocheck "internal mp3lib support"
5972 if test "$_mp3lib" = yes ; then
5973 _def_mp3lib='#define USE_MP3LIB 1'
5974 _codecmodules="mp3lib $_codecmodules"
5975 else
5976 _def_mp3lib='#undef USE_MP3LIB'
5977 _nocodecmodules="mp3lib $_nocodecmodules"
5979 echores "$_mp3lib"
5981 echocheck "internal liba52 support"
5982 if test "$_liba52" = yes ; then
5983 _def_liba52='#define USE_LIBA52 1'
5984 _codecmodules="liba52 $_codecmodules"
5985 else
5986 _def_liba52='#undef USE_LIBA52'
5987 _nocodecmodules="liba52 $_nocodecmodules"
5989 echores "$_liba52"
5991 echocheck "internal libmpeg2 support"
5992 if test "$_libmpeg2" = auto ; then
5993 _libmpeg2=yes
5994 if alpha && test cc_vendor=gnu; then
5995 case $cc_version in
5996 2*|3.0*|3.1*) # cannot compile MVI instructions
5997 _libmpeg2=no
5998 _res_comment="broken gcc"
6000 esac
6003 if test "$_libmpeg2" = yes ; then
6004 _def_libmpeg2='#define USE_LIBMPEG2 1'
6005 _codecmodules="libmpeg2 $_codecmodules"
6006 else
6007 _def_libmpeg2='#undef USE_LIBMPEG2'
6008 _nocodecmodules="libmpeg2 $_nocodecmodules"
6010 echores "$_libmpeg2"
6012 echocheck "libdca support"
6013 if test "$_libdca" = auto ; then
6014 _libdca=no
6015 cat > $TMPC << EOF
6016 #include <inttypes.h>
6017 #include <dts.h>
6018 int main(void) { dts_init (0); return 0; }
6020 for _ld_dca in -ldts -ldca ; do
6021 cc_check $_ld_dca $_ld_lm && _ld_extra="$_ld_extra $_ld_dca" \
6022 && _libdca=yes && break
6023 done
6025 if test "$_libdca" = yes ; then
6026 _def_libdca='#define USE_LIBDCA 1'
6027 _codecmodules="libdca $_codecmodules"
6028 else
6029 _def_libdca='#undef USE_LIBDCA'
6030 _nocodecmodules="libdca $_nocodecmodules"
6032 echores "$_libdca"
6034 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6035 if test "$_musepack" = auto ; then
6036 _musepack=no
6037 cat > $TMPC << EOF
6038 #include <stddef.h>
6039 #include <mpcdec/mpcdec.h>
6040 int main(void) {
6041 mpc_streaminfo info;
6042 mpc_decoder decoder;
6043 mpc_decoder_set_streaminfo(&decoder, &info);
6044 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6045 return 0;
6048 cc_check -lmpcdec $_ld_lm && _musepack=yes
6050 if test "$_musepack" = yes ; then
6051 _def_musepack='#define HAVE_MUSEPACK 1'
6052 _ld_extra="$_ld_extra -lmpcdec"
6053 _codecmodules="musepack $_codecmodules"
6054 else
6055 _def_musepack='#undef HAVE_MUSEPACK'
6056 _nocodecmodules="musepack $_nocodecmodules"
6058 echores "$_musepack"
6061 echocheck "FAAC (AAC encoder) support"
6062 if test "$_faac" = auto ; then
6063 cat > $TMPC <<EOF
6064 #include <inttypes.h>
6065 #include <faac.h>
6066 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6068 _faac=no
6069 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6070 cc_check -O4 $_ld_faac $_ld_lm && _libs_mencoder="$_libs_mencoder $_ld_faac" && _faac=yes && break
6071 done
6073 if test "$_faac" = yes ; then
6074 _def_faac="#define HAVE_FAAC 1"
6075 test "$_faac_lavc" = auto && _faac_lavc=yes
6076 if test "$_faac_lavc" = yes ; then
6077 _def_faac_lavc="#define CONFIG_LIBFAAC 1"
6078 _libs_mplayer="$_libs_mplayer $_ld_faac"
6079 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6081 _codecmodules="faac $_codecmodules"
6082 else
6083 _faac_lavc=no
6084 _def_faac="#undef HAVE_FAAC"
6085 _def_faac_lavc="#undef CONFIG_LIBFAAC"
6086 _nocodecmodules="faac $_nocodecmodules"
6088 _res_comment="in libavcodec: $_faac_lavc"
6089 echores "$_faac"
6092 echocheck "FAAD2 (AAC) support"
6093 if test "$_faad_internal" = auto ; then
6094 if x86_32 && test cc_vendor=gnu; then
6095 case $cc_version in
6096 3.1*|3.2) # ICE/insn with these versions
6097 _faad_internal=no
6098 _res_comment="broken gcc"
6101 _faad_internal=yes
6103 esac
6104 else
6105 _faad_internal=yes
6107 elif test "$_faad_internal" = no && test "$_faad_external" = auto ; then
6108 _faad_external=no
6109 cat > $TMPC << EOF
6110 #include <faad.h>
6111 #ifndef FAAD_MIN_STREAMSIZE
6112 #error Too old version
6113 #endif
6114 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6115 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6117 cc_check -lfaad $_ld_lm && _faad_external=yes
6120 if test "$_faad_internal" = yes ; then
6121 _def_faad_internal="#define USE_FAAD_INTERNAL 1"
6122 _faad=yes
6123 _res_comment="internal floating-point"
6124 if test "$_faad_fixed" = yes ; then
6125 # The FIXED_POINT implementation of FAAD2 improves performance
6126 # on some platforms, especially for SBR files.
6127 CFLAGS="$CFLAGS -DFIXED_POINT"
6128 _res_comment="internal fixed-point"
6130 elif test "$_faad_external" = yes ; then
6131 _faad=yes
6132 _ld_extra="$_ld_extra -lfaad"
6133 else
6134 _def_faad_internal="#undef USE_FAAD_INTERNAL"
6135 _faad=no
6138 if test "$_faad" = yes ; then
6139 _def_faad='#define HAVE_FAAD 1'
6140 _codecmodules="faad2 $_codecmodules"
6141 else
6142 _def_faad='#undef HAVE_FAAD'
6143 _nocodecmodules="faad2 $_nocodecmodules"
6145 echores "$_faad"
6148 echocheck "LADSPA plugin support"
6149 if test "$_ladspa" = auto ; then
6150 cat > $TMPC <<EOF
6151 #include <stdio.h>
6152 #include <ladspa.h>
6153 int main(void) {
6154 const LADSPA_Descriptor *ld = NULL;
6155 return 0;
6158 _ladspa=no
6159 cc_check && _ladspa=yes
6161 if test "$_ladspa" = yes; then
6162 _def_ladspa="#define HAVE_LADSPA"
6163 else
6164 _def_ladspa="#undef HAVE_LADSPA"
6166 echores "$_ladspa"
6169 if test -z "$_codecsdir" ; then
6170 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6171 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6172 if test -d "$dir" ; then
6173 _codecsdir="$dir"
6174 break;
6176 done
6178 # Fall back on default directory.
6179 if test -z "$_codecsdir" ; then
6180 _codecsdir="$_libdir/codecs"
6181 mingw32 && _codecsdir="codecs"
6182 os2 && _codecsdir="codecs"
6186 echocheck "Win32 codecs"
6187 if test "$_win32dll" = auto ; then
6188 _win32dll=no
6189 if x86_32 && ! qnx; then
6190 _win32dll=yes
6193 if test "$_win32dll" = yes ; then
6194 _def_win32dll='#define USE_WIN32DLL 1'
6195 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6196 _res_comment="using $_win32codecsdir"
6197 if ! win32 ; then
6198 _def_win32_loader='#define WIN32_LOADER 1'
6199 _win32_emulation=yes
6200 else
6201 _ld_extra="$_ld_extra -ladvapi32 -lole32"
6202 _res_comment="using native windows"
6204 _codecmodules="win32 $_codecmodules"
6205 else
6206 _def_win32dll='#undef USE_WIN32DLL'
6207 _def_win32_loader='#undef WIN32_LOADER'
6208 _nocodecmodules="win32 $_nocodecmodules"
6210 echores "$_win32dll"
6213 echocheck "XAnim codecs"
6214 if test "$_xanim" = auto ; then
6215 _xanim=no
6216 _res_comment="dynamic loader support needed"
6217 if test "$_dl" = yes ; then
6218 _xanim=yes
6221 if test "$_xanim" = yes ; then
6222 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6223 _def_xanim='#define USE_XANIM 1'
6224 _def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6225 _codecmodules="xanim $_codecmodules"
6226 _res_comment="using $_xanimcodecsdir"
6227 else
6228 _def_xanim='#undef USE_XANIM'
6229 _def_xanim_path='#undef XACODEC_PATH'
6230 _nocodecmodules="xanim $_nocodecmodules"
6232 echores "$_xanim"
6235 echocheck "RealPlayer codecs"
6236 if test "$_real" = auto ; then
6237 _real=no
6238 _res_comment="dynamic loader support needed"
6239 if test "$_dl" = yes || test "$_win32dll" = yes &&
6240 (linux || freebsd || netbsd || dragonfly || darwin || win32) ; then
6241 _real=yes
6244 if test "$_real" = yes ; then
6245 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6246 _def_real='#define USE_REALCODECS 1'
6247 _def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6248 _codecmodules="real $_codecmodules"
6249 _res_comment="using $_realcodecsdir"
6250 else
6251 _def_real='#undef USE_REALCODECS'
6252 _def_real_path="#undef REALCODEC_PATH"
6253 _nocodecmodules="real $_nocodecmodules"
6255 echores "$_real"
6258 echocheck "QuickTime codecs"
6259 _qtx_emulation=no
6260 _def_qtx_win32='#undef USE_QTX_CODECS_WIN32'
6261 if test "$_qtx" = auto ; then
6262 test "$_win32dll" = yes || darwin && _qtx=yes
6264 if test "$_qtx" = yes ; then
6265 _def_qtx='#define USE_QTX_CODECS 1'
6266 win32 && _qtx_codecs_win32=yes && _def_qtx_win32='#define USE_QTX_CODECS_WIN32 1'
6267 _codecmodules="qtx $_codecmodules"
6268 darwin || win32 || _qtx_emulation=yes
6269 else
6270 _def_qtx='#undef USE_QTX_CODECS'
6271 _nocodecmodules="qtx $_nocodecmodules"
6273 echores "$_qtx"
6275 echocheck "Nemesi Streaming Media libraries"
6276 if test "$_nemesi" = auto && test "$_network" = yes ; then
6277 _nemesi=no
6278 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6279 _inc_extra="$_inc_extra `$_pkg_config --cflags libnemesi`"
6280 _ld_extra="$_ld_extra `$_pkg_config --libs libnemesi`"
6281 _nemesi=yes
6284 if test "$_nemesi" = yes; then
6285 _native_rtsp=no
6286 _def_nemesi='#define LIBNEMESI 1'
6287 _inputmodules="nemesi $_inputmodules"
6288 else
6289 _native_rtsp="$_network"
6290 _nemesi=no
6291 _def_nemesi='#undef LIBNEMESI'
6292 _noinputmodules="nemesi $_noinputmodules"
6294 echores "$_nemesi"
6296 echocheck "LIVE555 Streaming Media libraries"
6297 if test "$_live" = auto && test "$_network" = yes ; then
6298 cat > $TMPCPP << EOF
6299 #include <liveMedia.hh>
6300 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6301 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6302 #endif
6303 int main(void) { return 0; }
6306 _live=no
6307 for I in $_inc_extra "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do
6308 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6309 $I/groupsock/include && _livelibdir=`echo $I| sed s/-I//` && \
6310 _ld_extra="$_livelibdir/liveMedia/libliveMedia.a \
6311 $_livelibdir/groupsock/libgroupsock.a \
6312 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6313 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6314 $_ld_extra -lstdc++" \
6315 _inc_extraxx="-I$_livelibdir/liveMedia/include \
6316 -I$_livelibdir/UsageEnvironment/include \
6317 -I$_livelibdir/BasicUsageEnvironment/include \
6318 -I$_livelibdir/groupsock/include" && \
6319 _live=yes && break
6320 done
6321 if test "$_live" != yes ; then
6322 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
6323 _live_dist=yes
6327 if test "$_live" = yes && test "$_network" = yes; then
6328 _res_comment="using $_livelibdir"
6329 _def_live='#define STREAMING_LIVE555 1'
6330 _inputmodules="live555 $_inputmodules"
6331 elif test "$_live_dist" = yes && test "$_network" = yes; then
6332 _res_comment="using distribution version"
6333 _live="yes"
6334 _def_live='#define STREAMING_LIVE555 1'
6335 _ld_extra="$_ld_extra -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6336 _inc_extraxx="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6337 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6338 _inputmodules="live555 $_inputmodules"
6339 else
6340 _live=no
6341 _def_live='#undef STREAMING_LIVE555'
6342 _noinputmodules="live555 $_noinputmodules"
6344 echores "$_live"
6347 echocheck "FFmpeg libavutil"
6348 if test "$_libavutil_a" = auto ; then
6349 if test -d libavutil ; then
6350 _libavutil_a=yes
6351 _res_comment="static"
6352 else
6353 die "MPlayer will not compile without libavutil in the source tree."
6355 elif test "$_libavutil_so" = auto ; then
6356 _libavutil_so=no
6357 cat > $TMPC << EOF
6358 #include <libavutil/common.h>
6359 int main(void) { ff_gcd(1,1); return 0; }
6361 if $_pkg_config --exists libavutil ; then
6362 _inc_libavutil=`$_pkg_config --cflags libavutil`
6363 _ld_tmp=`$_pkg_config --libs libavutil`
6364 cc_check $_inc_libavutil $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
6365 && _libavutil_so=yes
6366 elif cc_check -lavutil $_ld_lm ; then
6367 _ld_extra="$_ld_extra -lavutil"
6368 _libavutil_so=yes
6369 _res_comment="using libavutil.so, but static libavutil is recommended"
6372 _libavutil=no
6373 _def_libavutil='#undef USE_LIBAVUTIL'
6374 _def_libavutil_a='#undef USE_LIBAVUTIL_A'
6375 _def_libavutil_so='#undef USE_LIBAVUTIL_SO'
6376 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
6377 test "$_libavutil" = yes && _def_libavutil='#define USE_LIBAVUTIL 1'
6378 test "$_libavutil_a" = yes && _def_libavutil_a='#define USE_LIBAVUTIL_A 1'
6379 test "$_libavutil_so" = yes && _def_libavutil_so='#define USE_LIBAVUTIL_SO 1'
6380 # neither static nor shared libavutil is available, but it is mandatory ...
6381 if test "$_libavutil" = no ; then
6382 die "You need static or shared libavutil, MPlayer will not compile without!"
6384 echores "$_libavutil"
6386 echocheck "FFmpeg libavcodec"
6387 if test "$_libavcodec_a" = auto ; then
6388 _libavcodec_a=no
6389 if test -d libavcodec && test -f libavcodec/utils.c ; then
6390 _libavcodec_a="yes"
6391 _res_comment="static"
6393 elif test "$_libavcodec_so" = auto ; then
6394 _libavcodec_so=no
6395 _res_comment="libavcodec.so is discouraged over static libavcodec"
6396 cat > $TMPC << EOF
6397 #include <libavcodec/avcodec.h>
6398 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6400 if $_pkg_config --exists libavcodec ; then
6401 _inc_libavcodec=`$_pkg_config --cflags libavcodec`
6402 _ld_tmp=`$_pkg_config --libs libavcodec`
6403 cc_check $_inc_libavcodec $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
6404 && _libavcodec_so=yes
6405 elif cc_check -lavcodec $_ld_lm ; then
6406 _ld_extra="$_ld_extra -lavcodec"
6407 _libavcodec_so=yes
6408 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6411 _libavcodec=no
6412 _def_libavcodec='#undef USE_LIBAVCODEC'
6413 _def_libavcodec_a='#undef USE_LIBAVCODEC_A'
6414 _def_libavcodec_so='#undef USE_LIBAVCODEC_SO'
6415 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
6416 test "$_libavcodec" = yes && _def_libavcodec='#define USE_LIBAVCODEC 1'
6417 test "$_libavcodec_a" = yes && _def_libavcodec_a='#define USE_LIBAVCODEC_A 1'
6418 test "$_libavcodec_so" = yes && _def_libavcodec_so='#define USE_LIBAVCODEC_SO 1'
6419 test "$_libavcodec_mpegaudio_hp" = yes \
6420 && _def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1'
6421 if test "$_libavcodec_a" = yes ; then
6422 _codecmodules="libavcodec $_codecmodules"
6423 elif test "$_libavcodec_so" = yes ; then
6424 _codecmodules="libavcodec.so $_codecmodules"
6425 else
6426 _nocodecmodules="libavcodec $_nocodecmodules"
6428 echores "$_libavcodec"
6430 echocheck "FFmpeg libavformat"
6431 if test "$_libavformat_a" = auto ; then
6432 _libavformat_a=no
6433 if test -d libavformat && test -f libavformat/utils.c ; then
6434 _libavformat_a=yes
6435 _res_comment="static"
6437 elif test "$_libavformat_so" = auto ; then
6438 _libavformat_so=no
6439 cat > $TMPC <<EOF
6440 #include <libavformat/avformat.h>
6441 #include <libavcodec/opt.h>
6442 int main(void) { av_alloc_format_context(); return 0; }
6444 if $_pkg_config --exists libavformat ; then
6445 _inc_libavformat=`$_pkg_config --cflags libavformat`
6446 _ld_tmp=`$_pkg_config --libs libavformat`
6447 cc_check $_inc_libavformat $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \
6448 && _libavformat_so=yes
6449 elif cc_check $_ld_lm -lavformat ; then
6450 _ld_extra="$_ld_extra -lavformat"
6451 _libavformat_so=yes
6452 _res_comment="using libavformat.so, but static libavformat is recommended"
6455 _libavformat=no
6456 _def_libavformat='#undef USE_LIBAVFORMAT'
6457 _def_libavformat_a='#undef USE_LIBAVFORMAT_A'
6458 _def_libavformat_so='#undef USE_LIBAVFORMAT_SO'
6459 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
6460 test "$_libavformat" = yes && _def_libavformat='#define USE_LIBAVFORMAT 1'
6461 test "$_libavformat_a" = yes && _def_libavformat_a='#define USE_LIBAVFORMAT_A 1'
6462 test "$_libavformat_so" = yes \
6463 && _def_libavformat_so='#define USE_LIBAVFORMAT_SO 1'
6464 echores "$_libavformat"
6466 echocheck "FFmpeg libpostproc"
6467 if test "$_libpostproc_a" = auto ; then
6468 _libpostproc_a=no
6469 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
6470 _libpostproc_a='yes'
6471 _res_comment="static"
6473 elif test "$_libpostproc_so" = auto ; then
6474 _libpostproc_so=no
6475 cat > $TMPC << EOF
6476 #define USE_LIBPOSTPROC 1
6477 #include <inttypes.h>
6478 #include <libpostproc/postprocess.h>
6479 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6481 if cc_check -lpostproc $_ld_lm ; then
6482 _ld_extra="$_ld_extra -lpostproc"
6483 _libpostproc_so=yes
6484 _res_comment="using libpostproc.so, but static libpostproc is recommended"
6487 _libpostproc=no
6488 _def_libpostproc='#undef USE_LIBPOSTPROC'
6489 _def_libpostproc_a='#undef USE_LIBPOSTPROC_A'
6490 _def_libpostproc_so='#undef USE_LIBPOSTPROC_SO'
6491 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
6492 test "$_libpostproc" = yes && _def_libpostproc='#define USE_LIBPOSTPROC 1'
6493 test "$_libpostproc_a" = yes && _def_libpostproc_a='#define USE_LIBPOSTPROC_A 1'
6494 test "$_libpostproc_so" = yes \
6495 && _def_libpostproc_so='#define USE_LIBPOSTPROC_SO 1'
6496 echores "$_libpostproc"
6499 echocheck "libamr narrowband"
6500 if test "$_libamr_nb" = auto ; then
6501 _libamr_nb=no
6502 cat > $TMPC << EOF
6503 #include <amrnb/sp_dec.h>
6504 int main(void) { Speech_Decode_Frame_init(); return 0; }
6506 cc_check -lamrnb && _libamr_nb=yes
6507 if test "$_libavcodec_a" != yes ; then
6508 _libamr_nb=no
6509 _res_comment="libavcodec (static) is required by libamr_nb, sorry"
6512 if test "$_libamr_nb" = yes ; then
6513 _libamr=yes
6514 _ld_extra="$_ld_extra -lamrnb"
6515 _def_libamr='#define CONFIG_LIBAMR 1'
6516 _def_libamr_nb='#define CONFIG_LIBAMR_NB 1'
6517 _libavdecoders="$_libavdecoders LIBAMR_NB_DECODER"
6518 _libavencoders="$_libavencoders LIBAMR_NB_ENCODER"
6519 _codecmodules="libamr_nb $_codecmodules"
6520 else
6521 _def_libamr_nb='#undef CONFIG_LIBAMR_NB'
6522 _nocodecmodules="libamr_nb $_nocodecmodules"
6524 echores "$_libamr_nb"
6527 echocheck "libamr wideband"
6528 if test "$_libamr_wb" = auto ; then
6529 _libamr_wb=no
6530 cat > $TMPC << EOF
6531 #include <amrwb/dec_if.h>
6532 int main(void) { D_IF_init(); return 0; }
6534 cc_check -lamrwb && _libamr_wb=yes
6535 if test "$_libavcodec_a" != yes ; then
6536 _libamr_wb=no
6537 _res_comment="libavcodec (static) is required by libamr_wb, sorry"
6540 if test "$_libamr_wb" = yes ; then
6541 _libamr=yes
6542 _ld_extra="$_ld_extra -lamrwb"
6543 _def_libamr='#define CONFIG_LIBAMR 1'
6544 _def_libamr_wb='#define CONFIG_LIBAMR_WB 1'
6545 _libavdecoders="$_libavdecoders LIBAMR_WB_DECODER"
6546 _libavencoders="$_libavencoders LIBAMR_WB_ENCODER"
6547 _codecmodules="libamr_wb $_codecmodules"
6548 else
6549 _def_libamr_wb='#undef CONFIG_LIBAMR_WB'
6550 _nocodecmodules="libamr_wb $_nocodecmodules"
6552 echores "$_libamr_wb"
6554 echocheck "libdv-0.9.5+"
6555 if test "$_libdv" = auto ; then
6556 _libdv=no
6557 cat > $TMPC <<EOF
6558 #include <libdv/dv.h>
6559 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6561 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
6563 if test "$_libdv" = yes ; then
6564 _def_libdv='#define HAVE_LIBDV095 1'
6565 _ld_extra="$_ld_extra -ldv"
6566 _codecmodules="libdv $_codecmodules"
6567 else
6568 _def_libdv='#undef HAVE_LIBDV095'
6569 _nocodecmodules="libdv $_nocodecmodules"
6571 echores "$_libdv"
6574 echocheck "Xvid"
6575 if test "$_xvid" = auto ; then
6576 _xvid=no
6577 cat > $TMPC << EOF
6578 #include <xvid.h>
6579 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6581 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6582 cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && _xvid=yes && break
6583 done
6586 if test "$_xvid" = yes ; then
6587 _def_xvid='#define HAVE_XVID4 1'
6588 _codecmodules="xvid $_codecmodules"
6589 else
6590 _def_xvid='#undef HAVE_XVID4'
6591 _nocodecmodules="xvid $_nocodecmodules"
6593 echores "$_xvid"
6595 echocheck "Xvid two pass plugin"
6596 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
6597 cat > $TMPC << EOF
6598 #include <xvid.h>
6599 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
6601 cc_check && _xvid_lavc=yes
6603 if test "$_xvid_lavc" = yes ; then
6604 _def_xvid_lavc='#define CONFIG_LIBXVID 1'
6605 _libavencoders="$_libavencoders LIBXVID_ENCODER"
6606 else
6607 _xvid_lavc=no
6608 _def_xvid_lavc='#undef CONFIG_LIBXVID'
6610 echores "$_xvid_lavc"
6613 echocheck "x264"
6614 if test "$_x264" = auto ; then
6615 cat > $TMPC << EOF
6616 #include <inttypes.h>
6617 #include <x264.h>
6618 #if X264_BUILD < 59
6619 #error We do not support old versions of x264. Get the latest from SVN.
6620 #endif
6621 int main(void) { x264_encoder_open((void*)0); return 0; }
6623 _x264=no
6624 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
6625 cc_check $_ld_x264 && _libs_mencoder="$_libs_mencoder $_ld_x264" && _x264=yes && break
6626 done
6629 if test "$_x264" = yes ; then
6630 _def_x264='#define HAVE_X264 1'
6631 _codecmodules="x264 $_codecmodules"
6632 test "$_x264_lavc" = auto && _x264_lavc=yes
6633 if test "$_x264_lavc" = yes ; then
6634 _def_x264_lavc='#define CONFIG_LIBX264 1'
6635 _libs_mplayer="$_libs_mplayer $_ld_x264"
6636 _libavencoders="$_libavencoders LIBX264_ENCODER"
6638 else
6639 _x264_lavc=no
6640 _def_x264='#undef HAVE_X264'
6641 _def_x264_lavc='#undef CONFIG_LIBX264'
6642 _nocodecmodules="x264 $_nocodecmodules"
6644 _res_comment="in libavcodec: $_x264_lavc"
6645 echores "$_x264"
6648 echocheck "libnut"
6649 if test "$_libnut" = auto ; then
6650 cat > $TMPC << EOF
6651 #include <stdio.h>
6652 #include <stdlib.h>
6653 #include <inttypes.h>
6654 #include <libnut.h>
6655 int main(void) { (void)nut_error(0); return 0; }
6657 _libnut=no
6658 cc_check -lnut && _libnut=yes
6661 if test "$_libnut" = yes ; then
6662 _def_libnut='#define HAVE_LIBNUT 1'
6663 _ld_extra="$_ld_extra -lnut"
6664 else
6665 _def_libnut='#undef HAVE_LIBNUT'
6667 echores "$_libnut"
6669 #check must be done after libavcodec one
6670 echocheck "zr"
6671 if test "$_zr" = auto ; then
6672 #36067's seem to identify themselves as 36057PQC's, so the line
6673 #below should work for 36067's and 36057's.
6674 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
6675 _zr=yes
6676 else
6677 _zr=no
6680 if test "$_zr" = yes ; then
6681 if test "$_libavcodec_a" = yes ; then
6682 _def_zr='#define HAVE_ZR 1'
6683 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
6684 _vomodules="zr zr2 $_vomodules"
6685 else
6686 _res_comment="libavcodec (static) is required by zr, sorry"
6687 _novomodules="zr $_novomodules"
6688 _def_zr='#undef HAVE_ZR'
6690 else
6691 _def_zr='#undef HAVE_ZR'
6692 _novomodules="zr zr2 $_novomodules"
6694 echores "$_zr"
6696 # mencoder requires (optional) those libs: libmp3lame
6697 if test "$_mencoder" != no ; then
6699 echocheck "libmp3lame (for mencoder)"
6700 _def_mp3lame_preset='#undef HAVE_MP3LAME_PRESET'
6701 _def_mp3lame_preset_medium='#undef HAVE_MP3LAME_PRESET_MEDIUM'
6702 if test "$_mp3lame" = auto ; then
6703 _mp3lame=no
6704 cat > $TMPC <<EOF
6705 #include <lame/lame.h>
6706 int main(void) { lame_version_t lv; (void) lame_init();
6707 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
6708 return 0; }
6710 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
6712 if test "$_mp3lame" = yes ; then
6713 _def_mp3lame="#define HAVE_MP3LAME"
6714 _ld_mp3lame=-lmp3lame
6715 _libs_mencoder="$_libs_mencoder $_ld_mp3lame"
6716 cat > $TMPC << EOF
6717 #include <lame/lame.h>
6718 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
6720 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset="#define HAVE_MP3LAME_PRESET"
6721 cat > $TMPC << EOF
6722 #include <lame/lame.h>
6723 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
6725 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset_medium="#define HAVE_MP3LAME_PRESET_MEDIUM"
6726 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
6727 if test "$_mp3lame_lavc" = yes ; then
6728 _def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
6729 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
6730 _libs_mplayer="$_libs_mplayer $_ld_mp3lame"
6732 else
6733 _mp3lame_lavc=no
6734 _def_mp3lame='#undef HAVE_MP3LAME'
6735 _def_mp3lame_lavc="#undef CONFIG_LIBMP3LAME"
6737 _res_comment="in libavcodec: $_mp3lame_lavc"
6738 echores "$_mp3lame"
6742 echocheck "mencoder"
6743 _mencoder_flag='#undef HAVE_MENCODER'
6744 if test "$_mencoder" = yes ; then
6745 _mencoder_flag='#define HAVE_MENCODER'
6746 _def_muxers='#define CONFIG_MUXERS 1'
6747 else
6748 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint
6749 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
6750 _libavmuxers=""
6752 echores "$_mencoder"
6754 echocheck "fastmemcpy"
6755 # fastmemcpy check is done earlier with tests of CPU & binutils features
6756 if test "$_fastmemcpy" = yes ; then
6757 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
6758 else
6759 _def_fastmemcpy='#undef USE_FASTMEMCPY'
6761 echores "$_fastmemcpy"
6764 echocheck "UnRAR executable"
6765 if test "$_unrar_exec" = auto ; then
6766 _unrar_exec="yes"
6767 mingw32 && _unrar_exec="no"
6769 if test "$_unrar_exec" = yes ; then
6770 _def_unrar_exec='#define USE_UNRAR_EXEC 1'
6771 else
6772 _def_unrar_exec='#undef USE_UNRAR_EXEC'
6774 echores "$_unrar_exec"
6776 echocheck "TV interface"
6777 if test "$_tv" = yes ; then
6778 _def_tv='#define USE_TV 1'
6779 _inputmodules="tv $_inputmodules"
6780 else
6781 _noinputmodules="tv $_noinputmodules"
6782 _def_tv='#undef USE_TV'
6784 echores "$_tv"
6787 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6788 echocheck "*BSD BT848 bt8xx header"
6789 _ioctl_bt848_h=no
6790 for file in "machine/ioctl_bt848.h" \
6791 "dev/bktr/ioctl_bt848.h" \
6792 "dev/video/bktr/ioctl_bt848.h" \
6793 "dev/ic/bt8xx.h" ; do
6794 cat > $TMPC <<EOF
6795 #include <sys/types.h>
6796 #include <sys/ioctl.h>
6797 #include <$file>
6798 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6800 if cc_check ; then
6801 _ioctl_bt848_h=yes
6802 _ioctl_bt848_h_name="$file"
6803 break;
6805 done
6806 if test "$_ioctl_bt848_h" = yes ; then
6807 _def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6808 _res_comment="using $_ioctl_bt848_h_name"
6809 else
6810 _def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6812 echores "$_ioctl_bt848_h"
6814 echocheck "*BSD ioctl_meteor.h"
6815 _ioctl_meteor_h=no
6816 for file in "machine/ioctl_meteor.h" \
6817 "dev/bktr/ioctl_meteor.h" \
6818 "dev/video/bktr/ioctl_meteor.h" ; do
6819 cat > $TMPC <<EOF
6820 #include <sys/types.h>
6821 #include <$file>
6822 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
6824 if cc_check ; then
6825 _ioctl_meteor_h=yes
6826 _ioctl_meteor_h_name="$file"
6827 break;
6829 done
6830 if test "$_ioctl_meteor_h" = yes ; then
6831 _def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
6832 _res_comment="using $_ioctl_meteor_h_name"
6833 else
6834 _def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6836 echores "$_ioctl_meteor_h"
6838 echocheck "*BSD BrookTree 848 TV interface"
6839 if test "$_tv_bsdbt848" = auto ; then
6840 _tv_bsdbt848=no
6841 if test "$_tv" = yes ; then
6842 cat > $TMPC <<EOF
6843 #include <sys/types.h>
6844 $_def_ioctl_meteor_h_name
6845 $_def_ioctl_bt848_h_name
6846 #ifdef IOCTL_METEOR_H_NAME
6847 #include IOCTL_METEOR_H_NAME
6848 #endif
6849 #ifdef IOCTL_BT848_H_NAME
6850 #include IOCTL_BT848_H_NAME
6851 #endif
6852 int main(void) {
6853 ioctl(0, METEORSINPUT, 0);
6854 ioctl(0, TVTUNER_GETFREQ, 0);
6855 return 0;
6858 cc_check && _tv_bsdbt848=yes
6861 if test "$_tv_bsdbt848" = yes ; then
6862 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
6863 _inputmodules="tv-bsdbt848 $_inputmodules"
6864 else
6865 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
6866 _noinputmodules="tv-bsdbt848 $_noinputmodules"
6868 echores "$_tv_bsdbt848"
6869 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6872 echocheck "DirectShow TV interface"
6873 if test "$_tv_dshow" = auto ; then
6874 _tv_dshow=no
6875 if test "$_tv" = yes && win32 ; then
6876 cat > $TMPC <<EOF
6877 #include <ole2.h>
6878 int main(void) {
6879 void* p;
6880 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
6881 return 0;
6884 cc_check -lole32 -luuid && _tv_dshow=yes
6887 if test "$_tv_dshow" = yes ; then
6888 _inputmodules="tv-dshow $_inputmodules"
6889 _def_tv_dshow='#define HAVE_TV_DSHOW 1'
6890 _ld_extra="$_ld_extra -lole32 -luuid"
6891 else
6892 _noinputmodules="tv-dshow $_noinputmodules"
6893 _def_tv_dshow='#undef HAVE_TV_DSHOW'
6895 echores "$_tv_dshow"
6898 echocheck "Video 4 Linux TV interface"
6899 if test "$_tv_v4l1" = auto ; then
6900 _tv_v4l1=no
6901 if test "$_tv" = yes && linux ; then
6902 cat > $TMPC <<EOF
6903 #include <stdlib.h>
6904 #include <linux/videodev.h>
6905 int main(void) { return 0; }
6907 cc_check && _tv_v4l1=yes
6910 if test "$_tv_v4l1" = yes ; then
6911 _audio_input=yes
6912 _tv_v4l=yes
6913 _def_tv_v4l='#define HAVE_TV_V4L 1'
6914 _def_tv_v4l1='#define HAVE_TV_V4L1 1'
6915 _inputmodules="tv-v4l $_inputmodules"
6916 else
6917 _noinputmodules="tv-v4l1 $_noinputmodules"
6918 _def_tv_v4l='#undef HAVE_TV_V4L'
6920 echores "$_tv_v4l1"
6923 echocheck "Video 4 Linux 2 TV interface"
6924 if test "$_tv_v4l2" = auto ; then
6925 _tv_v4l2=no
6926 if test "$_tv" = yes && linux ; then
6927 cat > $TMPC <<EOF
6928 #include <stdlib.h>
6929 #include <linux/types.h>
6930 #include <linux/videodev2.h>
6931 int main(void) { return 0; }
6933 cc_check && _tv_v4l2=yes
6936 if test "$_tv_v4l2" = yes ; then
6937 _audio_input=yes
6938 _tv_v4l=yes
6939 _def_tv_v4l='#define HAVE_TV_V4L 1'
6940 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
6941 _inputmodules="tv-v4l2 $_inputmodules"
6942 else
6943 _noinputmodules="tv-v4l2 $_noinputmodules"
6944 _def_tv_v4l2='#undef HAVE_TV_V4L2'
6946 echores "$_tv_v4l2"
6949 echocheck "TV teletext interface"
6950 if test "$_tv_teletext" = auto ; then
6951 _tv_teletext=no
6952 if test "$_freetype" = yes && test "$_pthreads" = yes; then
6953 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
6954 _tv_teletext=yes
6958 if test "$_tv_teletext" = yes ; then
6959 _def_tv_teletext='#define HAVE_TV_TELETEXT 1'
6960 _inputmodules="tv-teletext $_inputmodules"
6961 else
6962 _noinputmodules="tv-teletext $_noinputmodules"
6963 _def_tv_teletext='#undef HAVE_TV_TELETEXT'
6965 echores "$_tv_teletext"
6968 echocheck "Radio interface"
6969 if test "$_radio" = yes ; then
6970 _def_radio='#define USE_RADIO 1'
6971 _inputmodules="radio $_inputmodules"
6972 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6973 _radio_capture=no
6975 if test "$_radio_capture" = yes ; then
6976 _audio_input=yes
6977 _def_radio_capture="#define USE_RADIO_CAPTURE 1"
6978 else
6979 _def_radio_capture="#undef USE_RADIO_CAPTURE"
6981 else
6982 _noinputmodules="radio $_noinputmodules"
6983 _def_radio='#undef USE_RADIO'
6984 _def_radio_capture="#undef USE_RADIO_CAPTURE"
6985 _radio_capture=no
6987 echores "$_radio"
6988 echocheck "Capture for Radio interface"
6989 echores "$_radio_capture"
6991 echocheck "Video 4 Linux 2 Radio interface"
6992 if test "$_radio_v4l2" = auto ; then
6993 _radio_v4l2=no
6994 if test "$_radio" = yes && linux ; then
6995 cat > $TMPC <<EOF
6996 #include <stdlib.h>
6997 #include <linux/types.h>
6998 #include <linux/videodev2.h>
6999 int main(void) { return 0; }
7001 cc_check && _radio_v4l2=yes
7004 if test "$_radio_v4l2" = yes ; then
7005 _def_radio_v4l2='#define HAVE_RADIO_V4L2 1'
7006 else
7007 _def_radio_v4l2='#undef HAVE_RADIO_V4L2'
7009 echores "$_radio_v4l2"
7011 echocheck "Video 4 Linux Radio interface"
7012 if test "$_radio_v4l" = auto ; then
7013 _radio_v4l=no
7014 if test "$_radio" = yes && linux ; then
7015 cat > $TMPC <<EOF
7016 #include <stdlib.h>
7017 #include <linux/videodev.h>
7018 int main(void) { return 0; }
7020 cc_check && _radio_v4l=yes
7023 if test "$_radio_v4l" = yes ; then
7024 _def_radio_v4l='#define HAVE_RADIO_V4L 1'
7025 else
7026 _def_radio_v4l='#undef HAVE_RADIO_V4L'
7028 echores "$_radio_v4l"
7030 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7031 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7032 echocheck "*BSD BrookTree 848 Radio interface"
7033 _radio_bsdbt848=no
7034 cat > $TMPC <<EOF
7035 #include <sys/types.h>
7036 $_def_ioctl_bt848_h_name
7037 #ifdef IOCTL_BT848_H_NAME
7038 #include IOCTL_BT848_H_NAME
7039 #endif
7040 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7042 cc_check && _radio_bsdbt848=yes
7043 echores "$_radio_bsdbt848"
7044 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7046 if test "$_radio_bsdbt848" = yes ; then
7047 _def_radio_bsdbt848='#define HAVE_RADIO_BSDBT848 1'
7048 else
7049 _def_radio_bsdbt848='#undef HAVE_RADIO_BSDBT848'
7052 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7053 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7054 die "Radio driver requires BSD BT848, V4L or V4L2!"
7057 echocheck "Video 4 Linux 2 MPEG PVR interface"
7058 if test "$_pvr" = auto ; then
7059 _pvr=no
7060 if test "$_tv_v4l2" = yes && linux ; then
7061 cat > $TMPC <<EOF
7062 #include <stdlib.h>
7063 #include <inttypes.h>
7064 #include <linux/types.h>
7065 #include <linux/videodev2.h>
7066 int main(void) { struct v4l2_ext_controls ext; return 0; }
7068 cc_check && _pvr=yes
7071 if test "$_pvr" = yes ; then
7072 _def_pvr='#define HAVE_PVR 1'
7073 _inputmodules="pvr $_inputmodules"
7074 else
7075 _noinputmodules="pvr $_noinputmodules"
7076 _def_pvr='#undef HAVE_PVR'
7078 echores "$_pvr"
7081 echocheck "audio select()"
7082 if test "$_select" = no ; then
7083 _def_select='#undef HAVE_AUDIO_SELECT'
7084 elif test "$_select" = yes ; then
7085 _def_select='#define HAVE_AUDIO_SELECT 1'
7087 echores "$_select"
7090 echocheck "ftp"
7091 if ! beos && test "$_ftp" = yes ; then
7092 _def_ftp='#define HAVE_FTP 1'
7093 _inputmodules="ftp $_inputmodules"
7094 else
7095 _noinputmodules="ftp $_noinputmodules"
7096 _def_ftp='#undef HAVE_FTP'
7098 echores "$_ftp"
7100 echocheck "vstream client"
7101 if test "$_vstream" = auto ; then
7102 _vstream=no
7103 cat > $TMPC <<EOF
7104 #include <vstream-client.h>
7105 void vstream_error(const char *format, ... ) {}
7106 int main(void) { vstream_start(); return 0; }
7108 cc_check -lvstream-client && _vstream=yes
7110 if test "$_vstream" = yes ; then
7111 _def_vstream='#define HAVE_VSTREAM 1'
7112 _inputmodules="vstream $_inputmodules"
7113 _ld_extra="$_ld_extra -lvstream-client"
7114 else
7115 _noinputmodules="vstream $_noinputmodules"
7116 _def_vstream='#undef HAVE_VSTREAM'
7118 echores "$_vstream"
7120 # endian testing
7121 echocheck "byte order"
7122 if test "$_big_endian" = auto ; then
7123 cat > $TMPC <<EOF
7124 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
7125 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
7126 int main(void) { return (int)ascii_name; }
7128 if cc_check ; then
7129 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
7130 _big_endian=yes
7131 else
7132 _big_endian=no
7134 else
7135 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
7138 if test "$_big_endian" = yes ; then
7139 _byte_order='big-endian'
7140 _def_words_endian='#define WORDS_BIGENDIAN 1'
7141 else
7142 _byte_order='little-endian'
7143 _def_words_endian='#undef WORDS_BIGENDIAN'
7145 echores "$_byte_order"
7147 echocheck "OSD menu"
7148 if test "$_menu" = yes ; then
7149 _def_menu='#define HAVE_MENU 1'
7150 test $_dvbin = "yes" && _menu_dvbin=yes
7151 else
7152 _def_menu='#undef HAVE_MENU'
7153 _menu_dvbin=no
7155 echores "$_menu"
7158 echocheck "Subtitles sorting"
7159 if test "$_sortsub" = yes ; then
7160 _def_sortsub='#define USE_SORTSUB 1'
7161 else
7162 _def_sortsub='#undef USE_SORTSUB'
7164 echores "$_sortsub"
7167 echocheck "XMMS inputplugin support"
7168 if test "$_xmms" = yes ; then
7169 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7170 _xmmsplugindir=`xmms-config --input-plugin-dir`
7171 _xmmslibdir=`xmms-config --exec-prefix`/lib
7172 else
7173 _xmmsplugindir=/usr/lib/xmms/Input
7174 _xmmslibdir=/usr/lib
7177 _def_xmms='#define HAVE_XMMS 1'
7178 if darwin ; then
7179 _ld_extra="$_ld_extra ${_xmmslibdir}/libxmms.dylib"
7180 else
7181 _ld_extra="$_ld_extra ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7183 else
7184 _def_xmms='#undef HAVE_XMMS'
7186 echores "$_xmms"
7188 echocheck "inet6"
7189 if test "$_inet6" = auto ; then
7190 cat > $TMPC << EOF
7191 #include <sys/types.h>
7192 #if !defined(_WIN32) || defined(__CYGWIN__)
7193 #include <sys/socket.h>
7194 #include <netinet/in.h>
7195 #else
7196 #include <ws2tcpip.h>
7197 #endif
7198 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
7200 _inet6=no
7201 if cc_check $_ld_sock ; then
7202 _inet6=yes
7205 if test "$_inet6" = yes ; then
7206 _def_inet6='#define HAVE_AF_INET6 1'
7207 else
7208 _def_inet6='#undef HAVE_AF_INET6'
7210 echores "$_inet6"
7213 echocheck "gethostbyname2"
7214 if test "$_gethostbyname2" = auto ; then
7215 cat > $TMPC << EOF
7216 #include <sys/types.h>
7217 #include <sys/socket.h>
7218 #include <netdb.h>
7219 int main(void) { gethostbyname2("", AF_INET); return 0; }
7221 _gethostbyname2=no
7222 if cc_check ; then
7223 _gethostbyname2=yes
7227 if test "$_gethostbyname2" = yes ; then
7228 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
7229 else
7230 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
7232 echores "$_gethostbyname2"
7235 # --------------- GUI specific tests begin -------------------
7236 echocheck "GUI"
7237 echo "$_gui"
7238 if test "$_gui" = yes ; then
7240 # Required libraries
7241 if test "$_libavcodec" != yes ||
7242 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
7243 die "The GUI requires libavcodec with PNG support (needs zlib)."
7245 test "$_freetype" = no && test "$_bitmap_font" = no && \
7246 die "The GUI requires either FreeType or bitmap font support."
7247 if ! win32 ; then
7248 _gui_gtk=yes
7249 test "$_x11" != yes && die "X11 support required for GUI compilation."
7251 echocheck "XShape extension"
7252 if test "$_xshape" = auto ; then
7253 _xshape=no
7254 cat > $TMPC << EOF
7255 #include <X11/Xlib.h>
7256 #include <X11/Xproto.h>
7257 #include <X11/Xutil.h>
7258 #include <X11/extensions/shape.h>
7259 #include <stdlib.h>
7260 int main(void) {
7261 char *name = ":0.0";
7262 Display *wsDisplay;
7263 int exitvar = 0;
7264 int eventbase, errorbase;
7265 if (getenv("DISPLAY"))
7266 name=getenv("DISPLAY");
7267 wsDisplay=XOpenDisplay(name);
7268 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
7269 exitvar=1;
7270 XCloseDisplay(wsDisplay);
7271 return exitvar;
7274 cc_check -lXext && _xshape=yes
7276 if test "$_xshape" = yes ; then
7277 _def_xshape='#define HAVE_XSHAPE 1'
7278 else
7279 die "The GUI requires the X11 extension XShape (which was not found)."
7281 echores "$_xshape"
7283 #Check for GTK
7284 if test "$_gtk1" = no ; then
7285 #Check for GTK2 :
7286 echocheck "GTK+ version"
7288 if $_pkg_config gtk+-2.0 --exists ; then
7289 _gtk=`$_pkg_config gtk+-2.0 --modversion 2>/dev/null`
7290 _inc_extra="$_inc_extra `$_pkg_config gtk+-2.0 --cflags 2>/dev/null`"
7291 _libs_mplayer="$_libs_mplayer `$_pkg_config gtk+-2.0 --libs 2>/dev/null`"
7292 echores "$_gtk"
7294 # Check for GLIB2
7295 if $_pkg_config glib-2.0 --exists ; then
7296 echocheck "glib version"
7297 _glib=`$_pkg_config glib-2.0 --modversion 2>/dev/null`
7298 _libs_mplayer="$_libs_mplayer `$_pkg_config glib-2.0 --libs 2>/dev/null`"
7299 echores "$_glib"
7301 _def_gui='#define HAVE_NEW_GUI 1'
7302 _def_gtk2_gui='#define HAVE_GTK2_GUI 1'
7303 else
7304 _gtk1=yes
7305 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
7307 else
7308 echo "GTK-2 devel packages were not found, trying GTK 1.2"
7309 _gtk1=yes
7313 if test "$_gtk1" = yes ; then
7314 # Check for old GTK (1.2.x)
7315 echocheck "GTK version"
7316 if test -z "$_gtkconfig" ; then
7317 if ( gtk-config --version ) >/dev/null 2>&1 ; then
7318 _gtkconfig="gtk-config"
7319 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
7320 _gtkconfig="gtk12-config"
7321 else
7322 die "The GUI requires GTK devel packages (which were not found)."
7325 _gtk=`$_gtkconfig --version 2>&1`
7326 _inc_extra="$_inc_extra `$_gtkconfig --cflags 2>&1`"
7327 _libs_mplayer="$_libs_mplayer `$_gtkconfig --libs 2>&1`"
7328 echores "$_gtk (using $_gtkconfig)"
7330 # Check for GLIB
7331 echocheck "glib version"
7332 if test -z "$_glibconfig" ; then
7333 if ( glib-config --version ) >/dev/null 2>&1 ; then
7334 _glibconfig="glib-config"
7335 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
7336 _glibconfig="glib12-config"
7337 else
7338 die "The GUI requires GLIB devel packages (which were not found)"
7341 _glib=`$_glibconfig --version 2>&1`
7342 _libs_mplayer="$_libs_mplayer `$_glibconfig --libs 2>&1`"
7343 echores "$_glib (using $_glibconfig)"
7345 _def_gui='#define HAVE_NEW_GUI 1'
7346 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
7349 else #if ! win32
7350 _gui_win32=yes
7351 _libs_mplayer="$_libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
7352 _def_gui='#define HAVE_NEW_GUI 1'
7353 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
7354 fi #if ! win32
7356 else #if test "$_gui"
7357 _def_gui='#undef HAVE_NEW_GUI'
7358 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
7359 fi #if test "$_gui"
7360 # --------------- GUI specific tests end -------------------
7363 if test "$_charset" = "noconv" ; then
7364 _charset=""
7366 if test "$_charset" ; then
7367 _def_charset="#define MSG_CHARSET \"$_charset\""
7368 else
7369 _def_charset="#undef MSG_CHARSET"
7372 if test "$_charset" != "UTF-8" ; then
7373 echocheck "iconv program"
7374 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7375 if test "$?" -ne 0 ; then
7376 echores "no"
7377 echo "No working iconv program found, use "
7378 echo "--charset=UTF-8 to continue anyway."
7379 echo "If you also have problems with iconv library functions use --charset=noconv."
7380 echo "Messages in the GTK-2 interface will be broken then."
7381 exit 1
7382 else
7383 echores "yes"
7387 #############################################################################
7389 echocheck "automatic gdb attach"
7390 if test "$_crash_debug" = yes ; then
7391 _def_crash_debug='#define CRASH_DEBUG 1'
7392 else
7393 _def_crash_debug='#undef CRASH_DEBUG'
7394 _crash_debug=no
7396 echores "$_crash_debug"
7398 echocheck "compiler support for noexecstack"
7399 cat > $TMPC <<EOF
7400 int main(void) { return 0; }
7402 if cc_check -Wl,-z,noexecstack ; then
7403 _ld_extra="-Wl,-z,noexecstack $_ld_extra"
7404 echores "yes"
7405 else
7406 echores "no"
7410 # Dynamic linking flags
7411 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7412 _ld_dl_dynamic=''
7413 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7414 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 ; then
7415 _ld_dl_dynamic='-rdynamic'
7418 _ld_extra="$_ld_extra $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7419 bsdos && _ld_extra="$_ld_extra -ldvd"
7420 netbsd && x86_32 && _ld_extra="$_ld_extra -li386"
7421 openbsd && x86_32 && _ld_extra="$_ld_extra -li386"
7423 _def_debug='#undef MP_DEBUG'
7424 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
7427 echocheck "joystick"
7428 _def_joystick='#undef HAVE_JOYSTICK'
7429 if test "$_joystick" = yes ; then
7430 if linux ; then
7431 # TODO add some check
7432 _def_joystick='#define HAVE_JOYSTICK 1'
7433 else
7434 _joystick="no"
7435 _res_comment="unsupported under $system_name"
7438 echores "$_joystick"
7440 echocheck "lirc"
7441 if test "$_lirc" = auto ; then
7442 _lirc=no
7443 cat > $TMPC <<EOF
7444 #include <lirc/lirc_client.h>
7445 int main(void) { return 0; }
7447 cc_check -llirc_client && _lirc=yes
7449 if test "$_lirc" = yes ; then
7450 _def_lirc='#define HAVE_LIRC 1'
7451 _ld_extra="$_ld_extra -llirc_client"
7452 else
7453 _def_lirc='#undef HAVE_LIRC'
7455 echores "$_lirc"
7457 echocheck "lircc"
7458 if test "$_lircc" = auto ; then
7459 _lircc=no
7460 cat > $TMPC <<EOF
7461 #include <lirc/lircc.h>
7462 int main(void) { return 0; }
7464 cc_check -llircc && _lircc=yes
7466 if test "$_lircc" = yes ; then
7467 _def_lircc='#define HAVE_LIRCC 1'
7468 _ld_extra="$_ld_extra -llircc"
7469 else
7470 _def_lircc='#undef HAVE_LIRCC'
7472 echores "$_lircc"
7474 if arm; then
7475 # Detect maemo development platform libraries availability (http://www.maemo.org),
7476 # they are used when run on Nokia 770
7477 echocheck "maemo (Nokia 770)"
7478 if test "$_maemo" = auto ; then
7479 _maemo=no
7480 cat > $TMPC << EOF
7481 #include <libosso.h>
7482 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7484 cc_check `$_pkg_config --cflags --libs libosso 2>/dev/null` && _maemo=yes
7486 if test "$_maemo" = yes ; then
7487 _def_maemo='#define HAVE_MAEMO 1'
7488 _inc_extra="$_inc_extra `$_pkg_config --cflags libosso`"
7489 _ld_extra="$_ld_extra `$_pkg_config --libs libosso` -lXsp"
7490 else
7491 _def_maemo='#undef HAVE_MAEMO'
7493 echores "$_maemo"
7496 # linker paths should be the same for mencoder and mplayer
7497 _ld_tmp=""
7498 for I in $_libs_mplayer ; do
7499 _tmp=`echo $I | sed -e 's/^-L.*$//'`
7500 if test -z "$_tmp" ; then
7501 _ld_extra="$I $_ld_extra"
7502 else
7503 _ld_tmp="$_ld_tmp $I"
7505 done
7506 _libs_mplayer=$_ld_tmp
7509 #############################################################################
7510 if darwin ; then
7511 CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -shared-libgcc"
7512 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
7513 CFLAGS="$CFLAGS -no-cpp-precomp"
7516 if amigaos ; then
7517 CFLAGS="$CFLAGS -DNEWLIB -D__USE_INLINE__"
7519 if hpux ; then
7520 # use flag for HPUX missing setenv()
7521 CFLAGS="$CFLAGS -DHPUX"
7523 # Thread support
7524 if linux ; then
7525 CFLAGS="$CFLAGS -D_REENTRANT"
7526 elif freebsd || netbsd || openbsd || bsdos ; then
7527 # FIXME bsd needs this so maybe other OS'es
7528 CFLAGS="$CFLAGS -D_THREAD_SAFE"
7530 if cygwin ; then
7531 CFLAGS="$CFLAGS -D__CYGWIN__"
7533 if os2 ; then
7534 CFLAGS="$CFLAGS -Zomf"
7535 ASFLAGS="$ASFLAGS -Zomf"
7537 # 64 bit file offsets?
7538 if test "$_largefiles" = yes || freebsd ; then
7539 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7540 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7541 # dvdread support requires this (for off64_t)
7542 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7543 cygwin && CFLAGS="$CFLAGS -DSYS_CYGWIN"
7544 beos && CFLAGS="$CFLAGS -DSYS_BEOS"
7545 os2 && CFLAGS="$CFLAGS -DSYS_OS2"
7549 # Make sure config.h gets included.
7550 if test "$_dvdread_internal" = yes || test "$_faad_internal" = yes ; then
7551 CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
7554 CFLAGS="-I. $CFLAGS"
7555 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
7557 cat > $TMPC << EOF
7558 int main(void) { return 0; }
7560 if test "$cc_vendor" = "gnu" ; then
7561 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
7562 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
7563 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
7564 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
7567 cc_check -mno-omit-leaf-frame-pointer && CFLAG_NO_OMIT_LEAF_FRAME_POINTER="-mno-omit-leaf-frame-pointer"
7569 #this must be the last test to be performed or the ones following it will likely fail
7570 #because libdvdnavmini is intentionally not linked against libdvdread (to permit mplayer
7571 # to use its own copy of the library)
7572 echocheck "DVD support (libdvdnav)"
7573 if test "$_dvdnav" = auto ; then
7574 if test "$_dvdread_internal" = yes ; then
7575 _dvdnav=no
7576 _res_comment="Disabled in favor of the internal copy of dvdread. Append --disable-dvdread-internal."
7577 else
7578 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7581 if test "$_dvdnav" = auto ; then
7582 cat > $TMPC <<EOF
7583 #include <inttypes.h>
7584 #include <dvdnav/dvdnav.h>
7585 int main(void) { dvdnav_t *dvd=0; return 0; }
7587 _dvdnav=no
7588 _dvdnavdir=`$_dvdnavconfig --cflags`
7589 _dvdnavlibs=`$_dvdnavconfig --libs`
7590 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7592 if test "$_dvdnav" = yes ; then
7593 _largefiles=yes
7594 _def_dvdnav='#define USE_DVDNAV 1'
7595 _inc_extra="$_inc_extra `$_dvdnavconfig --cflags`"
7596 _ld_extra="$_ld_extra `$_dvdnavconfig --minilibs`"
7597 _inputmodules="dvdnav $_inputmodules"
7598 else
7599 _def_dvdnav='#undef USE_DVDNAV'
7600 _noinputmodules="dvdnav $_noinputmodules"
7602 echores "$_dvdnav"
7604 #############################################################################
7605 echo "Creating config.mak"
7606 cat > config.mak << EOF
7607 # -------- Generated by configure -----------
7609 # Ensure that locale settings do not interfere with shell commands.
7610 export LC_ALL = C
7612 MAN_LANG = $MAN_LANG
7613 MAN_LANG_ALL = $MAN_LANG_ALL
7615 DESTDIR =
7616 prefix = \$(DESTDIR)$_prefix
7617 BINDIR = \$(DESTDIR)$_bindir
7618 DATADIR = \$(DESTDIR)$_datadir
7619 MANDIR = \$(DESTDIR)$_mandir
7620 CONFDIR = \$(DESTDIR)$_confdir
7621 LIBDIR = \$(DESTDIR)$_libdir
7623 AR = $_ar
7624 CC = $_cc
7625 CXX = $_cc
7626 HOST_CC = $_host_cc
7627 RANLIB = $_ranlib
7628 WINDRES = $_windres
7629 INSTALL = $_install
7630 INSTALLSTRIP = $_install_strip
7632 EXTRA_INC = $_inc_extra
7633 EXTRAXX_INC = $_inc_extra $_inc_extraxx
7634 CFLAGS = $CFLAGS \$(EXTRA_INC)
7635 OPTFLAGS = $CFLAGS \$(EXTRA_INC)
7636 CFLAG_NO_OMIT_LEAF_FRAME_POINTER = $CFLAG_NO_OMIT_LEAF_FRAME_POINTER
7637 CXXFLAGS = $CXXFLAGS \$(EXTRAXX_INC)
7638 CFLAG_STACKREALIGN = $_stackrealign
7639 LIBDVDCSS_DVDREAD_FLAGS = $_libdvdcss_dvdread_flags
7640 CFLAG_DHAHELPER = $cflag_dhahelper
7641 CFLAG_SVGALIB_HELPER = $cflag_svgalib_helper
7642 ASFLAGS = $ASFLAGS
7644 EXTRALIBS = $_extra_libs
7645 EXTRA_LIB = $_ld_extra $_ld_static $_ld_lm
7646 EXTRALIBS_MPLAYER = $_libs_mplayer
7647 EXTRALIBS_MENCODER = $_libs_mencoder
7649 CHARSET = $_charset
7650 HELP_FILE = $_mp_help
7652 EXESUF = $_exesuf
7654 $_target_arch
7655 $_target_arch_x86
7656 `echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/'`
7658 GETCH = $_getch
7659 TIMER = $_timer
7661 AO_SRCS = $_aosrc
7662 VO_SRCS = $_vosrc
7664 MENCODER = $_mencoder
7665 MPLAYER = $_mplayer
7667 #internal libraries
7668 LIBA52 = $_liba52
7669 LIBMPEG2 = $_libmpeg2
7670 MP3LIB = $_mp3lib
7671 TREMOR_INTERNAL = $_tremor_internal
7672 TREMOR_LOW = $_tremor_low
7674 HAVE_SYS_MMAN_H = $_mman
7675 HAVE_POSIX_SELECT = $_posix_select
7677 NEED_GETTIMEOFDAY = $_need_gettimeofday
7678 NEED_GLOB = $_need_glob
7679 NEED_MMAP = $_need_mmap
7680 NEED_SETENV = $_need_setenv
7681 NEED_SHMEM = $_need_shmem
7682 NEED_STRSEP = $_need_strsep
7683 NEED_SWAB = $_need_swab
7684 NEED_VSSCANF = $_need_vsscanf
7686 # audio output
7687 OSS = $_ossaudio
7688 ALSA9 = $_alsa9
7689 ALSA1X = $_alsa1x
7691 # features
7692 APPLE_IR = $_apple_ir
7693 APPLE_REMOTE = $_apple_remote
7694 AUDIO_INPUT = $_audio_input
7695 BITMAP_FONT = $_bitmap_font
7696 CDDA = $_cdda
7697 CDDB = $_cddb
7698 COREAUDIO = $_coreaudio
7699 COREVIDEO = $_corevideo
7700 DVBIN = $_dvbin
7701 DVDNAV = $_dvdnav
7702 DVDREAD = $_dvdread
7703 DVDREAD_INTERNAL = $_dvdread_internal
7704 FAAC=$_faac
7705 FAAD = $_faad
7706 FAAD_INTERNAL = $_faad_internal
7707 FREETYPE = $_freetype
7708 FTP = $_ftp
7709 GIF = $_gif
7710 GUI = $_gui
7711 GUI_GTK = $_gui_gtk
7712 GUI_WIN32 = $_gui_win32
7713 JOYSTICK = $_joystick
7714 JPEG = $_jpeg
7715 LADSPA = $_ladspa
7716 LIBASS = $_ass
7717 LIBDCA = $_libdca
7718 LIBDV = $_libdv
7719 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7720 LIBLZO = $_liblzo
7721 LIBMAD = $_mad
7722 LIBMENU = $_menu
7723 LIBMENU_DVBIN = $_menu_dvbin
7724 LIBNEMESI = $_nemesi
7725 LIBNUT = $_libnut
7726 LIBSMBCLIENT = $_smbsupport
7727 LIBTHEORA = $_theora
7728 LIBVORBIS = $_vorbis
7729 LIRC = $_lirc
7730 MACOSX_BUNDLE = $_macosx_bundle
7731 MACOSX_FINDER_SUPPORT = $_macosx_finder_support
7732 MP3LAME = $_mp3lame
7733 MPLAYER_NETWORK = $_network
7734 MUSEPACK = $_musepack
7735 NATIVE_RTSP = $_native_rtsp
7736 PE_EXECUTABLE = $_pe_executable
7737 PNG = $_png
7738 PVR = $_pvr
7739 QTX_CODECS = $_qtx
7740 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7741 QTX_EMULATION = $_qtx_emulation
7742 QUARTZ = $_quartz
7743 RADIO=$_radio
7744 RADIO_CAPTURE=$_radio_capture
7745 REAL_CODECS = $_real
7746 SPEEX = $_speex
7747 STREAMING_LIVE555 = $_live
7748 STREAM_CACHE = $_stream_cache
7749 TOOLAME=$_toolame
7750 TV = $_tv
7751 TV_BSDBT848 = $_tv_bsdbt848
7752 TV_DSHOW = $_tv_dshow
7753 TV_TELETEXT = $_tv_teletext
7754 TV_V4L = $_tv_v4l
7755 TV_V4L1 = $_tv_v4l1
7756 TV_V4L2 = $_tv_v4l2
7757 TWOLAME=$_twolame
7758 UNRAR_EXEC = $_unrar_exec
7759 VCD = $_vcd
7760 VIDIX = $_vidix
7761 VIDIX_PCIDB = $_vidix_pcidb_val
7762 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7763 VIDIX_IVTV=$_vidix_drv_ivtv
7764 VIDIX_MACH64=$_vidix_drv_mach64
7765 VIDIX_MGA=$_vidix_drv_mga
7766 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7767 VIDIX_NVIDIA=$_vidix_drv_nvidia
7768 VIDIX_PM2=$_vidix_drv_pm2
7769 VIDIX_PM3=$_vidix_drv_pm3
7770 VIDIX_RADEON=$_vidix_drv_radeon
7771 VIDIX_RAGE128=$_vidix_drv_rage128
7772 VIDIX_S3=$_vidix_drv_s3
7773 VIDIX_SIS=$_vidix_drv_sis
7774 VIDIX_UNICHROME=$_vidix_drv_unichrome
7775 VSTREAM = $_vstream
7776 WIN32DLL = $_win32dll
7777 WIN32_EMULATION = $_win32_emulation
7778 X264 = $_x264
7779 XANIM_CODECS = $_xanim
7780 XMMS_PLUGINS = $_xmms
7781 XVID4 = $_xvid
7782 ZORAN = $_zr
7784 # FFmpeg
7785 LIBAVUTIL = $_libavutil
7786 LIBAVUTIL_A = $_libavutil_a
7787 LIBAVUTIL_SO = $_libavutil_so
7788 LIBAVCODEC = $_libavcodec
7789 LIBAVCODEC_A = $_libavcodec_a
7790 LIBAVCODEC_SO = $_libavcodec_so
7791 LIBAVFORMAT = $_libavformat
7792 LIBAVFORMAT_A = $_libavformat_a
7793 LIBAVFORMAT_SO = $_libavformat_so
7794 LIBPOSTPROC = $_libpostproc
7795 LIBPOSTPROC_A = $_libpostproc_a
7796 LIBPOSTPROC_SO = $_libpostproc_so
7798 BUILD_STATIC=yes
7799 SRC_PATH=..
7800 BUILD_ROOT=..
7801 LIBPREF=lib
7802 LIBSUF=.a
7803 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
7805 CONFIG_ENCODERS=yes
7806 CONFIG_GPL=yes
7807 CONFIG_MUXERS=$_mencoder
7808 CONFIG_LIBAMR=$_libamr
7809 CONFIG_LIBAMR_NB=$_libamr_nb
7810 CONFIG_LIBAMR_WB=$_libamr_wb
7811 CONFIG_LIBFAAC=$_faac_lavc
7812 CONFIG_LIBMP3LAME=$_mp3lame_lavc
7813 CONFIG_LIBVORBIS=$_libvorbis
7814 CONFIG_LIBX264=$_x264_lavc
7815 CONFIG_LIBXVID=$_xvid_lavc
7816 CONFIG_MLIB = $_mlib
7817 CONFIG_POSTPROC = yes
7818 # Prevent building libavcodec/imgresample.c with conflicting symbols
7819 CONFIG_SWSCALE=yes
7820 CONFIG_ZLIB=$_zlib
7822 HAVE_PTHREADS = $_pthreads
7823 HAVE_W32THREADS = $_w32threads
7824 HAVE_XVMC = $_xvmc
7826 `echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7827 `echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7828 `echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7829 `echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7830 `echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7831 `echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7833 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
7835 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,$^) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&,"
7836 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.h,$^) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&,"
7840 #############################################################################
7842 ff_config_enable () {
7843 _nprefix=$3;
7844 test -z "$_nprefix" && _nprefix='CONFIG'
7845 for part in $1; do
7846 if ` echo $2 | grep -q -E "(^| )$part($| )" `; then
7847 echo "#define ${_nprefix}_$part 1"
7848 echo "#define ENABLE_$part 1"
7849 else
7850 echo "#define ENABLE_$part 0"
7852 done
7855 echo "Creating config.h"
7856 cat > $TMPH << EOF
7857 /* -------- This file has been automatically generated by configure ---------
7858 Note: Any changes in it will be lost when you run configure again. */
7860 /* Protect against multiple inclusion */
7861 #ifndef MPLAYER_CONFIG_H
7862 #define MPLAYER_CONFIG_H
7864 #define CONFIGURATION "$_configuration"
7866 /* make sure we never get lavformat's poll() emulation, the results are
7867 horrible if the X libs try to actually use it, see MPlayer-users
7868 Message-ID: <45D49541.8060101@infernix.net>
7869 Date: Thu, 15 Feb 2007 18:15:45 +0100
7870 Subject: [MPlayer-users] Crash with backtrace when playing back demuxed...
7872 #define HAVE_SYS_POLL_H 1
7874 /* yes, we have inttypes.h */
7875 #define HAVE_INTTYPES_H 1
7877 /* int_fastXY_t emulation */
7878 $_def_fast_inttypes
7880 /* libdvdcss */
7881 #define HAVE_ERRNO_H 1
7883 /* libdvdcss + libdvdread */
7884 #define HAVE_LIMITS_H 1
7886 /* libdvdcss + libfaad2 */
7887 #define HAVE_UNISTD_H 1
7889 /* libfaad2 + libdvdread */
7890 #define STDC_HEADERS 1
7892 /* libfaad2 */
7893 #define HAVE_MEMCPY 1
7894 #define HAVE_STRCHR 1
7896 /* libdvdread */
7897 #define HAVE_UINTPTR_T 1
7899 /* name of messages charset */
7900 $_def_charset
7902 /* Runtime CPU detection */
7903 $_def_runtime_cpudetection
7905 /* Dynamic a/v plugins */
7906 $_def_dynamic_plugins
7908 /* "restrict" keyword */
7909 $_def_restrict_keyword
7911 /* __builtin_expect branch prediction hint */
7912 $_def_builtin_expect
7913 #ifdef HAVE_BUILTIN_EXPECT
7914 #define likely(x) __builtin_expect ((x) != 0, 1)
7915 #define unlikely(x) __builtin_expect ((x) != 0, 0)
7916 #else
7917 #define likely(x) (x)
7918 #define unlikely(x) (x)
7919 #endif
7921 /* attribute(used) as needed by some compilers */
7922 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
7923 # define attribute_used __attribute__((used))
7924 #else
7925 # define attribute_used
7926 #endif
7928 /* extern symbol prefix */
7929 $_def_extern_prefix
7931 /* compiler support for named assembler arguments */
7932 $_def_named_asm_args
7934 /* enable/disable SIGHANDLER */
7935 $_def_sighandler
7937 /* enable/disable automatic gdb attach on crash, requires SIGHANDLER */
7938 $_def_crash_debug
7940 /* Toggles debugging informations */
7941 $_def_debug
7943 /* Indicates that libcdio is available for VCD and CD-DA playback */
7944 $_def_libcdio
7946 /* Indicates that Ogle's libdvdread is available for DVD playback */
7947 $_def_dvdread
7949 /* Indicates that dvdread is internal */
7950 $_def_dvdread_internal
7952 /* Additional options for libdvdread/libdvdcss */
7953 $_def_dvd
7954 $_def_cdrom
7955 $_def_cdio
7956 $_def_dvdio
7957 $_def_bsdi_dvd
7958 $_def_dvd_bsd
7959 $_def_dvd_linux
7960 $_dev_dvd_openbsd
7961 $_def_dvd_darwin
7962 $_def_sol_scsi_h
7963 $_def_hpux_scsi_h
7965 /* Common data directory (for fonts, etc) */
7966 #define MPLAYER_DATADIR "$_datadir"
7967 #define MPLAYER_CONFDIR "$_confdir"
7968 #define MPLAYER_LIBDIR "$_libdir"
7970 /* Define this to compile stream-caching support, it can be enabled via
7971 -cache <kilobytes> */
7972 $_def_stream_cache
7974 /* Define if you are using Xvid library */
7975 $_def_xvid
7977 /* Define if you are using the X.264 library */
7978 $_def_x264
7980 /* Define if you are using libnut */
7981 $_def_libnut
7983 /* Define to include support for libdv-0.9.5 */
7984 $_def_libdv
7986 /* If build mencoder */
7987 $_mencoder_flag
7989 /* Indicates if libmp3lame is available
7990 Note: for mencoder */
7991 $_def_mp3lame
7992 $_def_mp3lame_preset
7993 $_def_mp3lame_preset_medium
7995 /* Undefine this if you do not want to select mono audio (left or right)
7996 with a stereo MPEG layer 2/3 audio stream. The command line option
7997 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7998 right-only), with 0 being the default.
8000 #define USE_FAKE_MONO 1
8002 /* Undefine this if your sound card driver has no working select().
8003 If you have kernel Oops, player hangups, or just no audio, you should
8004 try to recompile MPlayer with this option disabled! */
8005 $_def_select
8007 /* define this to use iconv(3) function to codepage conversions */
8008 $_def_iconv
8010 /* define this to use nl_langinfo function */
8011 $_def_langinfo
8013 /* define this to use RTC (/dev/rtc) for video timers */
8014 $_def_rtc
8016 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8017 #define MAX_OUTBURST 65536
8019 /* set up audio OUTBURST. Do not change this! */
8020 #define OUTBURST 512
8022 /* Define this if your system has the header file for the OSS sound interface */
8023 $_def_sys_soundcard
8025 /* Define this if your system has the header file for the OSS sound interface
8026 * in /usr/include */
8027 $_def_soundcard
8029 /* Define this if your system has the sysinfo header */
8030 $_def_sys_sysinfo
8032 /* Define this if your system has the "malloc.h" header file */
8033 $_def_malloc
8035 /* memalign is mapped to malloc if unsupported */
8036 $_def_memalign
8037 $_def_map_memalign
8038 $_def_memalign_hack
8040 /* assembler handling of .align */
8041 $_def_asmalign_pot
8043 /* Define this if your system has the "alloca.h" header file */
8044 $_def_alloca
8046 /* Define this if your system has the "byteswap.h" header file */
8047 $_def_byteswap_h
8049 /* Define this if your system has the "sys/mman.h" header file */
8050 $_def_mman
8051 $_def_mman_has_map_failed
8053 /* Define this if you have the elf dynamic linker -ldl library */
8054 $_def_dl
8056 /* Define this if you have the kstat kernel statistics library */
8057 $_def_kstat
8059 /* Define this if you have zlib */
8060 $_def_zlib
8061 #ifdef HAVE_ZLIB
8062 #define CONFIG_ZLIB 1
8063 #endif
8065 /* Define this if you have shm support */
8066 $_def_shm
8068 /* Define this if your system has strsep */
8069 $_def_strsep
8071 /* Define this if your system has vsscanf */
8072 $_def_vsscanf
8074 /* Define this if your system has swab */
8075 $_def_swab
8077 /* Define this if your system has posix select */
8078 $_def_posix_select
8080 /* Define this if your system has gettimeofday */
8081 $_def_gettimeofday
8083 /* Define this if your system has glob */
8084 $_def_glob
8086 /* Define this if your system has setenv */
8087 $_def_setenv
8088 #ifndef HAVE_SETENV
8089 int setenv(const char *name, const char *val, int overwrite);
8090 #endif
8092 /* Define this if your system has sysi86 */
8093 $_def_sysi86
8094 $_def_sysi86_iv
8096 /* Define this if your system has pthreads */
8097 $_def_pthreads
8099 /* Define this if you enabled thread support for libavcodec */
8100 $_def_threads
8101 #ifdef HAVE_THREADS
8102 #define ENABLE_THREADS 1
8103 #else
8104 #define ENABLE_THREADS 0
8105 #endif
8107 /* LIRC (remote control, see www.lirc.org) support: */
8108 $_def_lirc
8110 /* Apple Remote (remote control, see http://docs.info.apple.com/article.html?artnum=302504) support: */
8111 $_def_apple_remote
8113 /* Apple IR Remote (Linux remote control driver) */
8114 $_def_apple_ir
8116 /* Support for maemo (http://www.maemo.org) */
8117 $_def_maemo
8120 * LIRCCD (LIRC client daemon)
8121 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
8123 $_def_lircc
8125 /* DVD navigation support using libdvdnav */
8126 $_def_dvdnav
8128 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
8129 #define MPEG12_POSTPROC 1
8131 /* maximum alignment used by libmpeg2 */
8132 #define ATTRIBUTE_ALIGNED_MAX 16
8134 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
8135 $_def_libpostproc
8136 $_def_libpostproc_a
8137 $_def_libpostproc_so
8139 /* Win32 DLL support */
8140 $_def_win32dll
8141 #define WIN32_PATH "$_win32codecsdir"
8143 /* Mac OS X specific features */
8144 $_def_macosx_finder_support
8145 $_def_macosx_bundle
8146 $_def_coreaudio
8147 $_def_corevideo
8148 $_def_quartz
8149 $_def_quicktime
8151 /* Build our Win32-loader */
8152 $_def_win32_loader
8154 /* ffmpeg's libavcodec support (requires libavcodec source) */
8155 $_def_libavcodec
8156 $_def_libavcodec_a
8157 $_def_libavcodec_so
8158 $_def_libavcodec_mpegaudio_hp
8160 /* ffmpeg's libavformat support (requires libavformat source) */
8161 $_def_libavformat
8162 $_def_libavformat_a
8163 $_def_libavformat_so
8165 $_def_libavutil
8166 $_def_libavutil_a
8167 $_def_libavutil_so
8169 /* Use libavcodec's decoders */
8170 #define CONFIG_DECODERS 1
8171 #define ENABLE_DECODERS 1
8172 /* Use libavcodec's encoders */
8173 #define CONFIG_ENCODERS 1
8174 #define ENABLE_ENCODERS 1
8176 /* Use libavformat's demuxers */
8177 #define CONFIG_DEMUXERS 1
8178 #define ENABLE_DEMUXERS 1
8179 /* Use libavformat's muxers */
8180 $_def_muxers
8182 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8183 #define HAVE_EBX_AVAILABLE 1
8184 #ifndef MP_DEBUG
8185 #define HAVE_EBP_AVAILABLE 1
8186 #endif
8188 #define HAVE_SOCKLEN_T 1
8190 #define CONFIG_GPL 1
8191 #define ENABLE_SMALL 0
8192 #define ENABLE_GRAY 0
8194 /* Use AMR codecs from libavcodec. */
8195 $_def_libamr
8196 $_def_libamr_nb
8197 $_def_libamr_wb
8199 /* Use specific parts from FFmpeg. */
8200 `ff_config_enable "$_libavdecoders_all" "$_libavdecoders"`
8201 `ff_config_enable "$_libavencoders_all" "$_libavencoders"`
8202 `ff_config_enable "$_libavparsers_all" "$_libavparsers"`
8203 `ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers"`
8204 `ff_config_enable "$_libavmuxers_all" "$_libavmuxers"`
8205 `ff_config_enable "$_libavprotocols_all" "$_libavprotocols"`
8206 `ff_config_enable "$_libavbsfs_all" "$_libavbsfs"`
8208 $_def_faac_lavc
8209 $_def_mp3lame_lavc
8210 $_def_x264_lavc
8211 $_def_xvid_lavc
8213 /* Use codec libs included in mplayer CVS / source dist: */
8214 $_def_mp3lib
8215 $_def_liba52
8216 $_def_libmpeg2
8218 /* XAnim DLL support */
8219 $_def_xanim
8220 /* Default search path */
8221 $_def_xanim_path
8223 /* RealPlayer DLL support */
8224 $_def_real
8225 /* Default search path */
8226 $_def_real_path
8228 /* LIVE555 Streaming Media library support */
8229 $_def_live
8231 /* libnemesi Streaming Media library support */
8232 $_def_nemesi
8234 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
8235 $_def_fastmemcpy
8237 /* Use UnRAR executable for Vobsubs */
8238 $_def_unrar_exec
8240 /* gui support, please do not edit this option */
8241 $_def_gui
8242 $_def_gtk2_gui
8244 /* Audio output drivers */
8245 $_def_ossaudio
8246 $_def_ossaudio_devdsp
8247 $_def_ossaudio_devmixer
8248 $_def_alsa5
8249 $_def_alsa9
8250 $_def_alsa1x
8251 $_def_arts
8252 $_def_esd
8253 $_def_esd_latency
8254 $_def_pulse
8255 $_def_jack
8256 $_def_openal
8257 $_def_openal_h
8258 $_def_sys_asoundlib_h
8259 $_def_alsa_asoundlib_h
8260 $_def_sunaudio
8261 $_def_sgiaudio
8262 $_def_win32waveout
8263 $_def_nas
8265 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8266 #undef FAST_OSD
8267 #undef FAST_OSD_TABLE
8269 /* Enable TV Interface support */
8270 $_def_tv
8272 /* Enable Video 4 Linux TV interface support */
8273 $_def_tv_v4l
8275 /* Enable Video 4 Linux 1 TV interface support */
8276 $_def_tv_v4l1
8278 /* Enable Video 4 Linux 2 TV interface support */
8279 $_def_tv_v4l2
8281 /* Enable DirectShow TV interface support */
8282 $_def_tv_dshow
8284 /* *BSD BrookTree headers */
8285 $_def_ioctl_meteor_h_name
8286 $_def_ioctl_bt848_h_name
8288 /* Enable *BSD BrookTree TV interface support */
8289 $_def_tv_bsdbt848
8291 /* Enable TV Teletext Interface support */
8292 $_def_tv_teletext
8294 /* Enable Radio Interface support */
8295 $_def_radio
8297 /* Enable Capture for Radio Interface support */
8298 $_def_radio_capture
8300 /* Enable Video 4 Linux Radio interface support */
8301 $_def_radio_v4l
8303 /* Enable Video 4 Linux 2 Radio interface support */
8304 $_def_radio_v4l2
8306 /* Enable *BSD BrookTree Radio interface support */
8307 $_def_radio_bsdbt848
8309 /* Enable Video 4 Linux 2 MPEG PVR support */
8310 $_def_pvr
8312 /* Define if your processor stores words with the most significant
8313 byte first (like Motorola and SPARC, unlike Intel and VAX). */
8314 $_def_words_endian
8316 /* Define if your processor can access unaligned data in a fast way */
8317 $_def_fast_unaligned
8319 `ff_config_enable "$_arch_all" "$_arch" "ARCH"`
8321 /* For the PPC. G5 has the dcbzl when in 64bit mode but G4s and earlier do not
8322 have the instruction. */
8323 $_def_dcbzl
8325 /* Define this for Cygwin build for win32 */
8326 $_def_confwin32
8328 /* Define this to any prefered value from 386 up to infinity with step 100 */
8329 #define __CPU__ $iproc
8331 $_mp_wordsize
8333 $_def_vcd
8335 #ifdef sun
8336 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
8337 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8338 #elif defined(WIN32) || defined(__OS2__)
8339 #define DEFAULT_CDROM_DEVICE "D:"
8340 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8341 #elif defined(__APPLE__) || defined(__DARWIN__)
8342 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
8343 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
8344 #elif defined(__OpenBSD__)
8345 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
8346 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8347 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
8348 #define DEFAULT_CDROM_DEVICE "/dev/acd0"
8349 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8350 #elif defined(__DragonFly__)
8351 #define DEFAULT_CDROM_DEVICE "/dev/cd0"
8352 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8353 #elif defined(__AMIGAOS4__)
8354 #define DEFAULT_CDROM_DEVICE "a1ide.device:2"
8355 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
8356 #else
8357 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
8358 #define DEFAULT_DVD_DEVICE "/dev/dvd"
8359 #endif
8362 /*----------------------------------------------------------------------------
8364 ** NOTE: Instead of modifying these definitions here, use the
8365 ** --enable/--disable options of the ./configure script!
8366 ** See ./configure --help for details.
8368 *---------------------------------------------------------------------------*/
8370 /* C99 *lrint* and round* functions available */
8371 $_def_llrint
8372 $_def_lrint
8373 $_def_lrintf
8374 $_def_round
8375 $_def_roundf
8377 /* mkstemp support */
8378 $_def_mkstemp
8380 /* nanosleep support */
8381 $_def_nanosleep
8383 /* SMB support */
8384 $_def_smbsupport
8386 /* termcap flag for getch2.c */
8387 $_def_termcap
8389 /* termios flag for getch2.c */
8390 $_def_termios
8391 $_def_termios_h
8392 $_def_termios_sys_h
8394 /* enable PNG support */
8395 $_def_png
8397 /* enable JPEG support */
8398 $_def_jpeg
8400 /* enable PNM support */
8401 $_def_pnm
8403 /* enable md5sum support */
8404 $_def_md5sum
8406 /* enable yuv4mpeg support */
8407 $_def_yuv4mpeg
8409 /* enable GIF support */
8410 $_def_gif
8411 $_def_gif_4
8412 $_def_gif_tvt_hack
8414 /* enable bitmap font support */
8415 $_def_bitmap_font
8417 /* enable FreeType support */
8418 $_def_freetype
8420 /* enable Fontconfig support */
8421 $_def_fontconfig
8423 /* enable SSA/ASS support */
8424 $_def_ass
8426 /* enable FriBiDi usage */
8427 $_def_fribidi
8429 /* enable ENCA usage */
8430 $_def_enca
8432 /* liblzo support */
8433 $_def_liblzo
8434 #ifdef USE_LIBLZO
8435 #define CONFIG_LZO 1
8436 #endif
8438 /* libmad support */
8439 $_def_mad
8441 /* enable OggVorbis support */
8442 $_def_vorbis
8443 $_def_tremor
8445 /* enable Speex support */
8446 $_def_speex
8448 /* enable musepack support */
8449 $_def_musepack
8451 /* enable OggTheora support */
8452 $_def_theora
8454 /* enable FAAD (AAC) support */
8455 $_def_faad
8456 $_def_faad_internal
8458 /* enable FAAC (AAC encoder) support */
8459 $_def_faac
8461 /* enable libdca support */
8462 $_def_libdca
8464 /* enable LADSPA plugin support */
8465 $_def_ladspa
8467 /* enable network */
8468 $_def_network
8470 /* enable ftp support */
8471 $_def_ftp
8473 /* enable vstream support */
8474 $_def_vstream
8476 /* enable winsock2 instead of Unix functions*/
8477 $_def_winsock2
8479 /* define this to use inet_aton() instead of inet_pton() */
8480 $_def_use_aton
8482 /* enables / disables cdparanoia support */
8483 $_def_cdparanoia
8484 $_def_cddb
8486 /* enables / disables VIDIX usage */
8487 $_def_vidix
8488 $_def_vidix_drv_cyberblade
8489 $_def_vidix_drv_ivtv
8490 $_def_vidix_drv_mach64
8491 $_def_vidix_drv_mga
8492 $_def_vidix_drv_mga_crtc2
8493 $_def_vidix_drv_nvidia
8494 $_def_vidix_drv_pm3
8495 $_def_vidix_drv_radeon
8496 $_def_vidix_drv_rage128
8497 $_def_vidix_drv_s3
8498 $_def_vidix_drv_sis
8499 $_def_vidix_drv_unichrome
8500 $_def_vidix_pfx
8502 /* enables / disables new input joystick support */
8503 $_def_joystick
8505 /* enables / disables QTX codecs */
8506 $_def_qtx
8507 $_def_qtx_win32
8509 /* enables / disables osd menu */
8510 $_def_menu
8512 /* enables / disables subtitles sorting */
8513 $_def_sortsub
8515 /* XMMS input plugin support */
8516 $_def_xmms
8517 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8519 /* enables inet6 support */
8520 $_def_inet6
8522 /* do we have gethostbyname2? */
8523 $_def_gethostbyname2
8525 /* Extension defines */
8526 `ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE"`
8528 $_def_altivec_h // enables usage of altivec.h
8529 $_def_altivec_vector_braces
8531 /* libvo options */
8532 #define SCREEN_SIZE_X 1
8533 #define SCREEN_SIZE_Y 1
8534 $_def_x11
8535 $_def_xv
8536 $_def_xvmc
8537 $_def_vm
8538 $_def_xf86keysym
8539 $_def_xinerama
8540 $_def_gl
8541 $_def_gl_win32
8542 $_def_dga
8543 $_def_dga1
8544 $_def_dga2
8545 $_def_sdl
8546 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
8547 $_def_sdlbuggy
8548 $_def_directx
8549 $_def_ggi
8550 $_def_ggiwmh
8551 $_def_3dfx
8552 $_def_s3fb
8553 $_def_tdfxfb
8554 $_def_tdfxvid
8555 $_def_xvr100
8556 $_def_directfb
8557 $_def_directfb_version
8558 $_def_dfbmga
8559 $_def_zr
8560 $_def_bl
8561 $_def_mga
8562 $_def_xmga
8563 $_def_fbdev
8564 $_def_dxr2
8565 $_def_dxr3
8566 $_def_ivtv
8567 $_def_v4l2
8568 $_def_dvb
8569 $_def_dvb_in
8570 $_def_svga
8571 $_def_vesa
8572 $_def_xss
8573 $_def_xdpms
8574 $_def_aa
8575 $_def_caca
8576 $_def_tga
8577 $_def_toolame
8578 $_def_twolame
8580 /* used by GUI: */
8581 $_def_xshape
8583 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
8584 #define X11_FULLSCREEN 1
8585 #endif
8587 #endif /* MPLAYER_CONFIG_H */
8590 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8591 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8593 #############################################################################
8595 cat << EOF
8597 Config files successfully generated by ./configure $_configuration !
8599 Install prefix: $_prefix
8600 Data directory: $_datadir
8601 Config direct.: $_confdir
8603 Byte order: $_byte_order
8604 Optimizing for: $_optimizing
8606 Languages:
8607 Messages/GUI: $_language
8610 echo ${_echo_n} " Manual pages: $MAN_LANG_ALL ${_echo_c}"
8611 test "$msg_langs" = en && echo ${_echo_n} " (no localization selected, use --language=all)${_echo_c}"
8612 echo
8614 cat << EOF
8616 Enabled optional drivers:
8617 Input: $_inputmodules
8618 Codecs: $_codecmodules
8619 Audio output: $_aomodules
8620 Video output: $_vomodules
8621 Disabled optional drivers:
8622 Input: $_noinputmodules
8623 Codecs: $_nocodecmodules
8624 Audio output: $_noaomodules
8625 Video output: $_novomodules
8627 'config.h' and 'config.mak' contain your configuration options.
8628 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8629 compile *** DO NOT REPORT BUGS if you tweak these files ***
8631 'make' will now compile MPlayer and 'make install' will install it.
8632 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8637 if test "$_mtrr" = yes ; then
8638 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/video.html#mtrr)"
8639 echo
8642 if ! x86_32; then
8643 cat <<EOF
8644 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8645 operating system ($system_name). You may encounter a few files that cannot
8646 be played due to missing open source video/audio codec support.
8652 cat <<EOF
8653 Check $TMPLOG if you wonder why an autodetection failed (make sure
8654 development headers/packages are installed).
8656 NOTE: The --enable-* parameters unconditionally force options on, completely
8657 skipping autodetection. This behavior is unlike what you may be used to from
8658 autoconf-based configure scripts that can decide to override you. This greater
8659 level of control comes at a price. You may have to provide the correct compiler
8660 and linker flags yourself.
8661 If you used one of these options (except --enable-gui and similar ones that
8662 turn on internal features) and experience a compilation or linking failure,
8663 make sure you have passed the necessary compiler/linker flags to configure.
8665 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
8669 if test "$_warn_CFLAGS" = yes; then
8670 cat <<EOF
8672 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS set by you, but:
8674 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8676 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8677 To do so, execute 'CFLAGS= ./configure <options>'
8682 # Last move:
8683 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"